0

我正在尝试使用 mysqli 访问一个 mysql 数据库和一个名为 phptest 的表,代码如下。我正在尝试检查 row 是否为 = 0 或其他内容,但它没有回显任何内容。代码有什么问题?

$mysqli = new mysqli("localhost", "root", "", "phptest");
if (!$mysqli) {
    echo "Can't connect to MySQL Server. Errorcode: %s\n". mysqli_connect_error();
    exit;
}
$query = "SELECT `id` FROM `test` WHERE `email`='example@hotmail.com' AND `password`='5f4dcc3b5aa765d61d8327deb882cf99'";
$query_run = $mysqli->query($query);
$row_cnt = $query_run->num_rows;
if ($row_cnt==0) {
    echo 'wrong..';
} else {
    echo 'correct!';
}

编辑:在 if 语句中编辑变量。我已经直接在表格的 mysql 面板中运行了查询。然后我得到正确的行数。为什么它在 php 中不起作用?

4

2 回答 2

1

尽管您正在检查未定义的变量$row_count(应该是$row_cnt,但这不是您的直接问题(您仍然应该解决此问题)。您遇到致命错误是因为:

  • 您的查询失败。您的查询可能由于表上缺少字段而失败,或者您确实缺少数据库中的实际表。如果查询失败,查询将返回FALSE,但您不会检查它,而是尝试访问结果的属性。如果查询失败,则没有结果对象,它是一个布尔值FALSE,会产生类似的致命错误Fatal Error: Trying to access a property of a none object

  • 您没有为 PHP 安装配置 MySQLi 库

要进一步调试,您应该打开错误报告,如下所示,或查阅服务器的错误日志。

error_reporting(E_ALL);
ini_set('display_errors', '1');
于 2012-06-24T17:12:18.260 回答
0

一件事是您定义$row_cnt然后检查了$row_count,但这只是快速查看您的程序,因此可能还有其他错误。

于 2012-06-24T16:55:39.523 回答