我正在努力通过PHP查看一些数据。我有一个谷歌的SQL数据库。我正在努力提取数据,迫切需要一些帮助!
PHP 一直说有 0 条记录,即使"计时"数据库和"事件"表中有许多记录。
如果有人有任何想法为什么这不起作用,我将不胜感激!
<?php
$link = new mysqli('IP_ADDRESS:3306','root','PASSWORD',timing);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully ';
$sql = "SELECT event_id FROM events";
$result = $link->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>Event ID</th><th>Event Name</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["event_id"];
}
echo "</table>";
}
else {
echo "0 results";
}
mysql_close($link);
?>
好的,
我想我明白了。从 PHP.net:
仅 OO 语法:如果连接失败,仍会返回对象。要检查连接是否失败,请使用 mysqli_connect_error() 函数或 mysqli->connect_error 属性,如前面的示例所示。
这意味着代码中的$link
将始终是 MySQLi 资源,并且它将始终转换为 true
。您需要做的是正确检查资源对象是否存在错误,如下所示:
if ($link->connect_error)
die('Connect Error: ' . $link->connect_error);
除非timing
是一个定义的常量,而且看起来情况并非如此,因为字符串应该用引号或双引号括起来。在任何情况下,未定义的常量都应该转换为字符串,但由于我在代码中看不到可能导致问题的任何其他错误。尝试更改
$link = new mysqli('IP_ADDRESS:3306','root','PASSWORD',timing);
自
$link = new mysqli('IP_ADDRESS:3306', 'root', 'PASSWORD', 'timing');