【问题标题】:mysql_num_rows always zero, despite of reality尽管现实,mysql_num_rows 始终为零
【发布时间】: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_* 函数。我建议您熟悉mysqliPDO

标签: php mysql


【解决方案1】:
$countt 

有两个 t

if($count>0)

所以$count 是未定义的

【讨论】:

  • 对于这样的小错误,只需发表评论并投票关闭。
  • 是的。做到了。不知何故错过了。
猜你喜欢
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 2012-01-16
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多