mssql_num_rows错误,但查询有效


mssql_num_rows error, but query works

嗨,我正在从php应用程序向远程MSSQL 2005服务器写入内容,遇到MSSQL_num_rows错误,并显示"MSSQL_num _rows()expects parameter 1 to be resource,boolean give"消息。。。。但我不明白为什么

$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都发出相同的错误消息)

正如andrewsi所指出的,mssql_num_rows()根据查询以不同的方式响应。在我的情况下,我正在运行一个插入,所以当它运行时:
$itemresult = mssql_query($writeitem);

$itemresult是布尔值(TRUE),因为插入成功,所以mssql_num_rows(和mssql_free_result()都发出了警告,因为没有结果集。