我尝试获取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)
答案 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';
查询中可能存在的问题是在查询本身中嵌入变量的值。相反,您应该使用参数化查询。