PHP mysql_num_rows()期望参数1是资源

时间:2014-03-10 07:01:37

标签: php mysql sql function error-handling

我正在使用这个简单的代码在标题上说出问题。

//Only Validate if the date is unique
$checkdatequery = mysql_query("SELECT TOP 1 * FROM user_info WHERE date ='".mysql_real_escape_string(stripslashes($_REQUEST['date']))."'", $db);
$rownumxx = mysql_num_rows($checkdatequery);
if($rownumxx == 0)
{
 echo'You are allowed to proceed.';
}
else
{
 echo'You are not allowed to proceed.';
}

我不确定我做错了什么。在此先感谢那些愿意提供帮助的人

6 个答案:

答案 0 :(得分:3)

MySQL中没有TOP个关键字,您应该使用LIMIT

应该是

$checkdatequery = mysql_query("SELECT * FROM user_info WHERE date ='".mysql_real_escape_string(stripslashes($_REQUEST['date']))."' LIMIT 1", $db);

答案 1 :(得分:0)

检查查询。每当你有这样的错误时,可能代替MySQL结果,由于某些查询错误而导致bool错误。正如其他答案所述。 “TOP”可能是你的问题!

答案 2 :(得分:0)

你应该使用

$checkdatequery = mysql_query("SELECT * FROM user_info WHERE date ='".mysql_real_escape_string(stripslashes($_REQUEST['date']))."' ORDER BY YOUR_INCR/UNIQUE KEY DESC LIMIT 1", $db);

答案 3 :(得分:0)

如果想要最新记录,请尝试此操作:

     $checkdatequery = mysql_query("SELECT  * FROM user_info 
     WHERE date ='".mysql_real_escape_string(stripslashes($_REQUEST['date']))."' 
     ORDER BY <key column name> DESC LIMIT 1", $db);

提供表格中的关键列名称  否则:

     $checkdatequery = mysql_query("SELECT  * FROM user_info 
     WHERE date ='".mysql_real_escape_string(stripslashes($_REQUEST['date']))."' 
     LIMIT 1", $db);

答案 4 :(得分:0)

尝试此查询

$date  = $_REQUEST['date'];
$checkdatequery = mysql_query("SELECT * FROM user_info WHERE date ='".mysql_real_escape_string(stripslashes($date))."' ORDER BY YOUR_INCR/UNIQUE KEY DESC LIMIT 1", $db);

答案 5 :(得分:0)

如果您使用mssql作为数据库

define('DSN', 'sqlsrv:server=localhost;database=dbname');
define('USER', 'username');
define('PASS', 'password');
$dbh = new PDO(DSN, USER, PASS);
$query='SELECT TOP 1 * FROM user_info WHERE date = :date';
$q = $dbh->prepare($this->query);
$data = array(":date"=>"your date");
$q->execute($data);
if(abs($q->rowCount()))
{
   $q->setFetchMode(PDO::FETCH_OBJ);
   echo'You are not allowed to proceed.';
}
else
{
   echo'You are allowed to proceed.';
}

如果您使用mysql作为数据库

define('DSN', 'mysql:server=localhost;database=dbname');
define('USER', 'username');
define('PASS', 'password');
$dbh = new PDO(DSN, USER, PASS);
$query='SELECT * FROM user_info WHERE date = :date LIMIT 1';
$q = $dbh->prepare($this->query);
$data = array(":date"=>"your date");
$q->execute($data);
if(abs($q->rowCount()))
{
   $q->setFetchMode(PDO::FETCH_OBJ);
   echo'You are not allowed to proceed.';
}
else
{
   echo'You are allowed to proceed.';
}