В Java-JDBC, можно легко выполнить следующий SQL (обратите внимание на двойные кавычки столбцов и имена таблиц)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
Но один и тот же запрос в ошибках PHP , говоря, недопустимый синтаксис
"Предупреждение: 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-сервером что-то не так. Я думаю, что это больше проблема с библиотекой php. – Nilesh
Это не серверный параметр. Таким образом, ваше приложение Java может использовать другую настройку. – VolkerK
Привет, Фолькерк, ты прав, он решил мою проблему. Я прошу прощения за ответ, не протестировав его. я сделал следующий \t $ SQL = <<< EOD Выберите Кас. "Customer_id", Каса. "Organisation_or_person", Каса. "Organisation_name", Каса. "First_name", Каса.» last_name ", cus." date_became_customer ", cus." other_customer_details " От " Contact_Management "." dbo "." Клиенты "cus EOD; $ db-> Выполнить ('SET QUOTED_IDENTIFIER ON'); $ rs = $ db-> Выполнять ($ sql); И это сработало отлично Благодарю вас большое. – Nilesh