【发布时间】:2015-01-23 01:23:36
【问题描述】:
我安装了 mySQL 数据库,用 phpMyAdmin 来管理它。 我有一个测试数据库,其中包含一个“用户”表和我放入的一行。
在 phpMyAdmin 中,当我执行“SELECT * from users”时,我正确地收到了一行。
现在我已经构建了一个小的 PHP hello world 页面。它连接到同一个数据库,并使用我打开的完全特权用户凭据。它提交相同的查询,但出于某种奇怪的原因,mysql_num_rows 始终为零
这是我使用的代码。请注意,当我加载网页时,我会在网页上看到以下调试消息:
success so far
success so far 2
No Rows
这是我正在使用的代码:
<?php
if (!$link = mysql_connect('localhost', 'testuser', 'testpw')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('MYDB', $link)) {
echo 'Could not select database';
exit;
}
echo 'success so far<br>';
$sql = 'SELECT * FROM users';
$result = mysql_query($sql, $link) or die(mysql_error());
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo 'success so far 2<br>';
$countt = mysql_num_rows($result);
if($count>0)
{
echo "we have rows";
}
else
{
echo "No Rows";
}
while ($row = mysql_fetch_assoc($result)) {
echo $row['foo'];
}
mysql_free_result($result);
?>
我会很感激任何关于我做错了什么的指示。如您所知 - 我是 php 新手。
【问题讨论】:
-
这不是一个很好的调试方法。如果您使用过
var_dump($count)之类的东西,您可能会很快发现您的错误。此外,如果您在开发环境中打开了 PHP 通知,并且在屏幕上显示错误或查看日志,您会看到关于$count未定义的通知。您应该熟悉这些用于开发的工具。另一个注意事项是,您不应该使用已弃用的mysql_*函数。我建议您熟悉mysqli或PDO。