【发布时间】:2013-07-22 16:02:27
【问题描述】:
您好,我正在从 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 都发出同样的错误信息)
【问题讨论】:
-
mssql_query 如果查询失败则返回布尔值;尝试运行
mssql_get_last_message()以查看来自数据库的错误消息是什么。 -
那是奇怪的部分 - 记录被插入,所有数据都按照我想要的方式......我刚刚尝试了 mssql_get_last_message() 并且消息是空的
-
这很奇怪;您是否尝试过运行
mssql_get_last_message()以查看其中是否有任何内容? -
so - 我刚刚尝试了 mssql_get_last_message() 并且消息为空。并添加了记录。
-
哦,这正在敲响警钟。你能运行
var_dump($itemresult)看看它返回什么吗?
标签: php sql-server-2005