0

我有以下代码:

$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 函数!对不起!

4

4 回答 4

1

您是否检查过您的连接是否已建立。也许尝试在查询后输出查询结果。还尝试回显您的 mysql_error() 以查看是否有任何问题。

echo mysql_error();

在您的查询之后。

于 2011-11-03T12:42:13.323 回答
1

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

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

此代码将告诉您查询有什么问题。

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

于 2011-11-03T12:50:51.083 回答
0

改变

$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()返回FALSEmysql_num_rows()期望结果资源,而不是布尔值,因此它会发出您看到的错误。

于 2011-11-03T12:41:52.563 回答
0

您的查询失败。用 mysql_errno 检查原因

http://us2.php.net/mysql_errno

于 2011-11-03T12:42:20.883 回答