通过PHP转义保留的SQL Server关键字

mus*_*sme 2 php sql sql-server

我在PHP中为SQL Server数据库编写的查询存在一个问题,即单词未被识别为表名.我正在使用SQL Server for PHP 2.0(VC6).以下查询工作,并Order在SQL Server Management Studio中执行时返回表中的所有订单.

SELECT * FROM "db_name"."dbo"."Order" (also tried using brakets [] around table name)
Run Code Online (Sandbox Code Playgroud)

在PHP中,我收到以下错误:

[0] => Array
    (
        [0] => IMSSP
        [SQLSTATE] => IMSSP
        [1] => -35
        [code] => -35
        [2] => Invalid type
        [message] => Invalid type
    )
Run Code Online (Sandbox Code Playgroud)

此查询在PHP代码中适用于数据库中的所有其他表,db_name它只适用于表Order,这是正确的表名.我试过双引号,矩形括号,没有引号/括号等等无济于事.有谁知道如何解决这个问题?

**更新:

我找到了解决方案.请查看修复或解决方法的其中一个答案.

Cad*_*oux 5

必须在PHP或您的驱动程序中进行某些操作.您应该能够使用SQL Server Profiler查看正在提交的实际查询.

无论如何,如果你不知道它在做什么.您可以将此视为一种解决方法:

CREATE VIEW dbo.MyOrder
AS
SELECT * FROM [Order]
Run Code Online (Sandbox Code Playgroud)

继续前进 - 生命太短暂了.