PHP - mssql_num_rows()期望参数1是资源,给定整数

时间:2016-03-12 16:59:51

标签: php sql sql-server

我尝试获取num_rows:

SELECT * from Store_Product_List where ProductType = 'some' order by ProductPrice asc

但我收到了这个错误:

Warning: mssql_num_rows() expects parameter 1 to be resource, integer given

完整代码:

    $dbgetstorelist = new DB_MSSQL;
    $dbgetstorelist->query("SELECT * from Store_Product_List where ProductType = '$storecategory' order by ProductPrice asc");
var_dump($dbgetstoremethod->num_rows());
    for($i=0;$i < $dbgetstorelist->num_rows();++$i) 
    { //do something }
来自class的

num_rows()函数:

function num_rows() {
    return mssql_num_rows($this->Query_ID);
  }

$ dbgetstoremethod-&gt; num_rows()的var_dump是:

int(3) 

2 个答案:

答案 0 :(得分:1)

您似乎没有为属性$ this-&gt; Query_ID设置值。

也许试试:

$dbgetstorelist = new DB_MSSQL;
$dbgetstorelist->Query_ID = $dbgetstorelist->query("SELECT * from Store_Product_List where ProductType = '$storecategory' order by ProductPrice asc");
for($i=0;$i < $dbgetstorelist->num_rows( );++$i) 
{ //do something }

function num_rows() {
 return mssql_num_rows($this->Query_ID);
}

答案 1 :(得分:0)

评论太长了。

据推测,您的查询出了问题。您应该在变量替换后打印出查询字符串以查看是否存在问题以及是否可以在其他位置运行它。

但是,如果要获取行数,请让数据库进行计数:

SELECT COUNT(*) as cnt 
FROM Store_Product_List 
WHERE ProductType = '$storecategory';

查询中可能存在的问题是在查询本身中嵌入变量的值。相反,您应该使用参数化查询。