在Java的JDBC,我可以很容易地運行下面的SQL(注意周圍的列和表名稱雙引號)在PHP錯誤PHP mssql_query雙引號不能用於
Select
cus."customer_id" ,
cus."organisation_or_person" ,
cus."organisation_name" ,
cus."first_name" ,
cus."last_name" ,
cus."date_became_customer" ,
cus."other_customer_details"
From
"Contact_Management"."dbo"."Customers" cus
但相同的查詢說出來無效的語法
「警告:mssql_query()[function.mssql查詢]:消息:附近有語法錯誤CUSTOMER_ID「(嚴重性15)」
但如果去掉所有的雙引號,查詢作品罰款和沒有錯誤。
該查詢是從一個Java應用程序移植的,所以我想保留雙引號和SQL,因爲它是。任何替代方案?
謝謝 Nilesh製作
Volkerk - 解決方案(SET QUOTED_IDENTIFIER ON)
我做了以下
$sql = <<<EOD
Select
cus."customer_id" ,
cus."organisation_or_person" ,
cus."organisation_name" ,
cus."first_name" ,
cus."last_name" ,
cus."date_became_customer" ,
cus."other_customer_details"
From
"Contact_Management"."dbo"."Customers" cus
EOD;
$db->Execute('SET QUOTED_IDENTIFIER ON');
$rs = $db->Execute($sql);
而且它完美
太謝謝你了..
對於來自Java的同一實例,相同的查詢工作正常,所以我不認爲它是SQL Server的錯誤。我認爲這是更多的PHP庫問題。 – Nilesh 2010-04-06 22:34:43
這不是服務器範圍內的設置。所以你的Java應用程序可能會使用其他設置 – VolkerK 2010-04-06 22:37:36
嗨Volkerk,你是對的,它解決了我的問題。我對未經測試而回復表示歉意。 我做了以下 \t $ SQL = <<< EOD 選擇 CUS。 「CUSTOMER_ID」, CUS。 「organisation_or_person」, CUS。 「ORGANISATION_NAME」, CUS。 「FIRST_NAME」, CUS「。 last_name「, cus。」date_became_customer「, cus。」other_customer_details「 從 」Contact_Management「。」dbo「。」Customers「cus EOD; $ db-> Execute('SET QUOTED_IDENTIFIER ON'); $ rs = $ db-> Execute($ sql); 它工作完美 非常感謝你非常感謝 – Nilesh 2010-04-06 22:42:35