Php mssql_num_行错误,但查询有效
您好,我正在从一个php应用程序向远程MSSQL 2005服务器写入数据,在这种情况下,MSSQL_num_rows出现错误,并显示“MSSQL_num_rows()期望参数1为资源,布尔给定”消息。。。。但我不明白为什么Php mssql_num_行错误,但查询有效,php,sql-server-2005,Php,Sql Server 2005,您好,我正在从一个php应用程序向远程MSSQL 2005服务器写入数据,在这种情况下,MSSQL_num_rows出现错误,并显示“MSSQL_num_rows()期望参数1为资源,布尔给定”消息。。。。但我不明白为什么 $writeitem = "INSERT INTO RebateSubmissionProducts VALUES ('" . $buyproduct . "'," . $quantity . ",CAST('" . $itemUUID . "' as UNIQUEIDENT
$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都会发出相同的错误消息)如前所述,mssql_num_rows()根据查询以不同的方式响应。在我的例子中,我正在运行一个insert,因此当它运行时:
$itemresult = mssql_query($writeitem);
$itemresult是布尔值(TRUE),因为插入成功,所以mssql\u num\u行(和mssql\u free\u result()都发出了警告,因为没有结果集。mssql\u查询失败时返回布尔值;尝试运行
mssql\u get\u last\u message()
查看数据库中的错误消息是什么。这是奇怪的部分-记录被插入,所有数据都是我想要的…我刚刚尝试了mssql\u get\u last\u message(),消息为空这很奇怪;您是否尝试过运行mssql\u get\u last\u message()
看看里面有没有什么东西?所以-我刚刚尝试了mssql\u get\u last\u message(),消息是空的。记录被添加了。哦,现在这是铃声。你能运行var\u dump($itemresult)
看看它返回什么吗?