PHP / MYSQL错误:mysql_num_rows():提供的参数无效



我有以下代码:

$sql = mysql_query("SELECT id FROM logins WHERE id='" . $this->skID . "'");
if(mysql_num_rows($sql) == 0) { return false; }
else {
      list($skID) = mysql_fetch_row($sql);
      return $skID;
}    

返回下面的错误。

mysql_num_rows():提供的参数不是一个有效的MySQL结果资源

我已经回了SQL并在数据库中运行它,我得到了一个结果,所以问题是什么-任何想法最受欢迎?

[编辑]对不起,我是一个绝对的白痴,试图在ms数据库上使用mysql函数!对不起!

您是否检查了您的连接是否已建立?也许可以尝试在查询之后输出查询结果。也试着回显mysql_error(),看看是否出了什么问题。

echo mysql_error();

运行查询的正确方式(以及一致的变量命名):

$sql    = "SELECT id FROM logins WHERE id='" . (int)$this->skID . "'";
$result = mysql_query($sql) or trigger_error(mysql_error." in ".$sql);

这段代码会告诉你你的查询出了什么问题。

不建议使用die()

,因为它会破坏代码执行并使页面看起来很乱。更不用说将错误消息无条件输出到屏幕是一个安全漏洞。

变化

$sql = mysql_query("SELECT id FROM logins WHERE id='" . $this->skID . "'");

if (!$sql = mysql_query("SELECT id FROM logins WHERE id='" . $this->skID . "'")) {
  // handle error here
  // for example:
  die('MySQL Error: '.mysql_error());
  // ...but don't show the result of mysql_error() in a production environment!!
}

您的查询失败,mysql_query()返回FALSE, mysql_num_rows()期望结果资源,而不是布尔值,因此它发出您所看到的错误。

查询失败。使用mysql_errno检查原因

http://us2.php.net/mysql_errno

相关内容

  • 没有找到相关文章

最新更新