mysqli不执行SQL,没有报错信息

mysqli does not execute SQL, no error message

我正在尝试使用 PHP 和 MySQL 编写一个非常简单的 "Hello World!" 程序。

一切正常,直到我添加行“$rs = $db->query($sql);”然后我只得到一个空白屏幕。

我做错了什么?? 谢谢!

代码如下:

<?
$user = 'root';
$password = 'root';
$database = 'grc';
$host = 'localhost';
$port = 3306;

$link = mysqli_init();
$db = mysqli_real_connect($link, $host, $user, $password, $database, $port);

if (mysqli_connect_errno()) {
    die('Failed to connect to MySQL: ' . mysqli_connect_error());
}

printf('asdf\n\n');

$sql = 'SELECT productname FROM product WHERE productid=1';

$rs = $db->query($sql);
if (!$rs) {
    printf("%s\n", $db->error);
    exit();
}
printf('1sdfasdf');
?>
<html>
    <head>Hello world!</head>
    <body>Hello WORLD!!</body>
</html>

我想通了。

首先,通过编辑 php.ini 打开错误。

其次,出现的错误是这样的: "Fatal error: Call to a member function query() on a boolean"

这是因为这一行:

$db = mysqli_real_connect($link, $host, $user, $password, $database, $port);

将 $db 变成了 true/false。

第三,我用这个替换了代码:

$user = 'root';
$password = 'root';
$database = 'grc';
$host = 'localhost';

$conn = new mysqli($host, $user, $password, $database);

if ($conn->connect_error) {
        die('Failed to connect to MySQL: ' . $conn->connect_error);
}       

$sql = 'SELECT productname FROM grc.product WHERE productid=1';

$rs = $conn->query($sql);
if ($rs->num_rows > 0) {
        while ($row=$rs->fetch_assoc()) {
                echo "productname: " . $row["productname"] . "<br />";
        }
} else {        
        echo "Zero results.";
} 
$conn->close();

它奏效了。

没有使用 mysqli_real_connect() 或其他一些最新的方法,但它有效,我使用的是面向对象的 mysqli,这对我来说已经足够了。

感谢大家的回复。