我有以下代码:
$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函数!遗憾!
答案 0 :(得分:1)
您是否检查过您的连接已建立。也许在您的查询后尝试输出查询结果。也尝试回显你的mysql_error(),看看是否有什么问题。
echo mysql_error();
直接查询后。
答案 1 :(得分:1)
运行查询的正确方法(以及一致的变量命名):
$sql = "SELECT id FROM logins WHERE id='" . (int)$this->skID . "'";
$result = mysql_query($sql) or trigger_error(mysql_error." in ".$sql);
此代码会告诉您查询的错误。
建议不要使用die(),否则会破坏代码执行并使页面看起来很乱。更不用说向屏幕无条件输出错误信息是一个安全漏洞。答案 2 :(得分: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()
返回FALSE
,而mysql_num_rows()
需要结果资源,而不是布尔值,因此它会发出您看到的错误。
答案 3 :(得分:0)
您的查询失败。使用mysql_errno检查原因