我有一个问题写为

  mysql_query($query,$conn)
    or
    die(
    "A MySQL error has occurred.<br />Your Query: " . $query . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
    echo "You have been entered into our Database!";

这个输出
A MySQL error has occurred.
Your Query: INSERT INTO users (uid, twname, privacy) VALUES (15400743, 'gdhdh', 'accepted')
Error: (0)

所以它没有列出任何错误或任何东西。当我将该查询复制/粘贴到PHPMyAdmin的SQL选项卡中时,它将成功运行,并且DB连接不会抛出任何错误(我知道它工作正常,因为查询在其他地方工作正常):
function get_db_conn() {
$conn = mysql_connect($GLOBALS['db_ip'], $GLOBALS['db_user'], $GLOBALS['db_pass']);
mysql_select_db($GLOBALS['db_name'], $conn);
return $conn;

}
有什么我能解决的吗?我真的很感激。

最佳答案

错误0表示没有发生错误。
因此,如果在没有发生错误的情况下运行输出错误的代码,则在调用mysql_query()函数的代码中会出现逻辑错误。
从代码中很难判断哪些应该在不同的条件下运行,哪些不应该在不同的条件下运行,以及错误可能出现在哪里。
下面的代码在逻辑上等同于您试图实现的目标,并且应该按预期工作。
这段代码更清楚地将调用mysql_query()函数与检查调用函数的结果分开。我还对代码进行了一些格式化,使其在不进行任何水平滚动的情况下显示,尽管这纯粹是可选的。

$queryResult = mysql_query($query, $conn);
if ($queryResult === false) {
    $errorMessage = "A MySQL error has occurred.<br />"
                  . "Your Query: ".$query."<br />"
                  . " Error: (".mysql_errno().") ".mysql_error();

    die($errorMessage);
}

关于php - mysql_errno和mysql_error总是报告某些内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1141419/

10-10 14:20