带有like的SQL Query在php中的返回方式不同

时间:2013-03-22 17:11:10

标签: php sql-server adodb

  

解决:我测试了将查询作为存储过程再次编写   在php中仍然报错了。最终我发现了因为   我有一些带有空值的列PHP正在奇怪地读它们。   令人失望的是,Perl处理得更好,但很好。

我正在使用带有adodb的PHP 5.3.3来访问MS SQL Server 2012.我的大多数查询都很好,但我正在尝试使用通配符进行完全连接。

以下是部分内容:

on a_table.hostname LIKE '%' + r_table.Hostname + '%' 
OR '%' + a_table.hostname like r_table.Name + '%'

当我在SQL Studio中执行查询时,我得到了1224条记录。 在PHP中,2406。我查看了sql server上的日志,并且它运行的查询是准确的,并且在复制和粘贴时返回预期/正确的结果数。

如果我在PHP中编辑查询并删除连接的%s,则结果与直接执行查询一致(如果通配符也从中删除)。

我已经使用PHP的mssql函数和adodb测试了查询,结果相同。

编辑:我刚刚用三种方式测试了查询:通过Perl,Sql studio和PHP。 Perl& SQL studio是一样的 - PHP仍然是错误的。

1 个答案:

答案 0 :(得分:0)

我测试了将查询编写为存储过程,并再次在php中报告错误。最终我发现因为我有一些带有空值的列,PHP正在奇怪地读它们。