PHP MySQL 期望给定 mysqli 布尔值


PHP MySQL expects mysqli boolean given

我有一个php脚本,可以在请求页面时更改数据库。这是 php:

<?php
date_default_timezone_set('EST');//set time zone
$con=mysqli_connect("baukin.fatcowmysql.com","sas","***pass***","dbname");//establish connection
// Check connection
if (mysqli_connect_errno())//ping database to check connection
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();//error message
  }
else
{
echo "Successfully updated database";//success message
}
mysqli_query($con,"UPDATE dryers SET STATE='$_GET[state]' WHERE MACHINEID ='$_GET[machine_id]' ");//update state
mysqli_query($con,"UPDATE dryers SET UPDATETIME=date('m/d/y H:i:s') WHERE MACHINEID = '$_GET[machine_id]' ");//update time
mysqli_close($con);//close connection
?>

我收到此错误:

    Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2005): Unknown MySQL server host 'server' (0) in /home/content/57/10410357/html/updatedatabase.php on line 3
Failed to connect to MySQL: Unknown MySQL server host 'server' (0)
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /home/content/57/10410357/html/updatedatabase.php on line 13
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /home/content/57/10410357/html/updatedatabase.php on line 15
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in /home/content/57/10410357/html/updatedatabase.php on line 17

我是 php 的新手,知道为什么吗?

发生该错误是因为$con未正确初始化(可能是因为,与许多服务器一样,MySQL仅限于本地连接)。这就是为什么您在mysqli_connect()之后出现错误的原因。

如果无法连接到 MySQL,则应终止脚本或显示错误消息,而不尝试查询空对象。

一种选择:

if (!$con) {
    echo "Error connecting to MySQL: " . mysql_connect_error();
    die; // You can kill the script here
}

另一个:

if (!$con) { // Error connecting
    echo "Error connecting to Mysql: " . mysql_connect_error();
    // Another message here if you want
}
else { // Connection ok
    mysqli_query( /* bla bla bla */ );
    // ...
}

请注意,我正在验证$con值(如果null或否)而不是mysqli_connection_errno(),因为如果连接变量定义不明确,它不会返回值。

这种验证直接取自 mysqli_connect() 文档示例。

3 行

$con=mysqli_connect("server","db","user","password");//establish connection

将"服务器"更改为您的主机地址或"本地主机"

我的假设是你的数据库名称="DB",你的用户="用户

",用户的密码="密码"

如果不是,只需更改为正确的数据库名称,用户名和密码

Unknown MySQL server host

Mysql 找不到您的服务器

在此行中,检查您的服务器

$con=mysqli_connect("server","db","user","password")

查看文档

将服务器更改为本地主机,即使它是服务器的名称。 服务器始终是本地主机。

$con=mysqli_connect("server","db","user","password");//establish connection

您需要定义这些变量

DEFINE('SERVER', 'localhost');
DEFINE('db','whatever');
DEFINE('user','nickcage');
DEFINE('password','conair');