您好我正在从php应用程序写入远程MSSQL 2005服务器,并且有一种情况,mssql_num_rows错误输出“mssql_num_rows()期望参数1是资源,布尔给定”消息....但我可以找出原因
$writeitem = "INSERT INTO RebateSubmissionProducts VALUES ('" . $buyproduct . "'," . $quantity . ",CAST('" . $itemUUID . "' as UNIQUEIDENTIFIER),CAST('" . $eligible . "' as UNIQUEIDENTIFIER),CAST('" . $prodID . "' as UNIQUEIDENTIFIER),CAST('" . $UUID . "' as UNIQUEIDENTIFIER),NULL)";
$itemresult = mssql_query($writeitem);
if (!mssql_num_rows($itemresult)){
echo 'Problem writing to RebateSubmissionProducts';
} else {
echo 'Success writing to RebateSubmissionProducts';
}
mssql_free_result($itemresult);
结果是我收到错误消息,但插入工作正常。
顺便说一句,所有的输入都是通过HTMLPurifier运行的,所以不要太苛刻。托管公司无法设置PDO_DBLIB,因此我无法使用PDO /绑定参数....我也无法访问MS服务器来创建存储过程。
为什么php认为$ itemresult是布尔值的任何想法? (mssql_num_rows和mssql_free_result都发出相同的错误消息)
答案 0 :(得分:0)
正如andrewsi指出的那样,mssql_num_rows()以不同的方式响应,具体取决于查询。就我而言,我正在运行一个插入,所以当它运行时:
$itemresult = mssql_query($writeitem);
$ itemresult是boolean(TRUE)因为插入成功,所以mssql_num_rows(和mssql_free_result()都发出了警告,因为没有结果集。