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,这对我来说已经足够了。
感谢大家的回复。
我正在尝试使用 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,这对我来说已经足够了。
感谢大家的回复。