我正在为这个而烦恼,所以我去了这个网站。
我有一个 PHP 脚本。它试图访问脚本所在的同一服务器上的 MySQL 数据库,使用非常常见的 mysql_connect(建立持久连接)并将结果分配给变量 $user_con。
$user_con = mysql_connect([servername], [username], [password], TRUE);
//And no, that's not what's actually in the code, but I'm not going to give those
details up. :)
但出于某种原因,所有从中实际获取数据的尝试都失败了……没有任何错误。 mysql_error(),无论是在连接尝试之后还是在使用 mysql_select_db() 之后,都不输出任何内容。 if 语句将 $user_con 视为非空(如果 mysql_connect 失败,它输出 FALSE,使用 empty() 将其视为空),尽管回显 $user_con 不输出任何内容。脚本本身不会崩溃,并输出其余的 HTML 和来自其他 SQL 连接的数据,我运行得很好。
出于某种原因,脚本只注意到连接在稍后的执行过程中无法正常工作。当我尝试获取数据时,我让它检查连接是否存在,它最终表现得好像没有它,所以我让它尝试重新连接但失败了,如下一个 if block 所示如果无法从数据库中获取内容,我会输出不同的数据。
if(empty($user_con))
{
$check = mysql_ping($user_con);
if(!$check)
{
$user_con = mysql_connect([servername], [username], [password], TRUE);
if(!empty($user_con))
{
mysql_select_db("user_db", $user_con);
}
}
}
if(empty($user_con))
{
$output .= "<br /><span class=\"comuser\">Posted by: User #" . $userid . "</span></p>";
//Where $userid is outputted instead of the username I want to get from the database USING the userid
}
我还想指出,在此代码中的任何位置回显 mysql_error() 调用也不会输出任何内容,因为这显然太容易了。
现在页面上可以看到here ,除了脚本只输出用户 ID 而不是用户名之外,一切正常。
我只是不明白为什么我不能让这个连接工作...即使使用我老板写的代码来纠正其他脚本中的这个问题在这里也不起作用(事实上,实际上导致而是一个不错的崩溃)!
最佳答案
mysql_error() 在运行查询时从服务器返回实际错误。你还没有走到那一步。
在这种情况下,您的 PHP 错误似乎没有显示,因此您没有看到连接错误。检查你的 php.ini 和你的 error.log。
此外,请使用 PDO 或至少使用 mysqli,并进行适当的异常处理。
关于php - 通过 PHP 脚本 : connection doesn't seem to work, 获取 SQL 数据但没有错误,if 语句将变量视为非假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380089/