我有一个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');