php - 如何修复 odbc 中的“[Microsoft][ODBC SQL Server Driver][SQL Server]'�'附近的语法错误”错误?
问题描述
我正在尝试使用 odbc 使用 php 连接到 sql server 数据库,它工作正常,然后我更改了 sql 查询,我收到了这个错误:
警告:odbc_exec():SQL 错误:[Microsoft][ODBC SQL Server Driver][SQL Server]'�'附近的语法不正确,SQLExecDirect 中的 SQL 状态 37000 ...
我试图回到正在工作的初始查询,但我得到了同样的错误。
我检查了我找不到任何东西的语法,并且在 sql server management studio 上执行两个查询时都可以正常工作。
$dsn2 = "Driver={SQL Server};Server=$servername2;Database=$dbname";
$conn2 = odbc_connect( $dsn2 , $username2 , $password2);
$sql = "SELECT top(1) Ticket.RFC_NUMBER AS [T-N° de ticket]
,Catalog_.[TITLE_FR] AS [T-CI]
,Group_.[GROUP_FR] AS [A-Groupe_Intervenant]
FROM [EVO_DATA50004].[50004].[SD_REQUEST] as Ticket
inner join [EVO_DATA50004].[50004].[AM_ACTION] as Action_ WITH (NOLOCK) on Ticket.[REQUEST_ID] = Action_.[REQUEST_ID]
inner join [EVO_DATA50004].[50004].[SD_CATALOG] as Catalog_ WITH (NOLOCK) on Ticket.[SD_CATALOG_ID] = Catalog_.[SD_CATALOG_ID]
inner join [EVO_DATA50004].[50004].[AM_GROUP] as Group_ WITH (NOLOCK) on Action_.[GROUP_ID] = Group_.group_ID
left outer join [EVO_DATA50004].[50004].AM_EMPLOYEE AS Employee_ WITH (NOLOCK) ON Action_.DONE_BY_ID = Employee_.EMPLOYEE_ID
WHERE Ticket.RFC_NUMBER like 'I%'
AND Action_.END_DATE_UT is null
AND Action_.STATUS_ID_ON_CREATE is not null
AND Action_.STATUS_ID_ON_CREATE in('12')
And Employee_.[LAST_NAME] is null
AND Action_.[group_id] in(42)";
$result = odbc_exec($conn2 , $sql);
解决方案
推荐阅读
- html - 仅当前一个文件输入不为空时才显示文件输入
- postgresql - 如何连接两个表并创建新列?
- c# - c#中lineInfo不等于多个字符串怎么办?
- javascript - 如何在 Vue JS 2.+ 中使用自定义事件
- java - 如何在一定的行长后转到新行?
- javascript - Visual Studio 代码中的 JavaScript NPM 错误
- c++ - 在抛出 'std::logic_error' what() 的实例后调用终止:basic_string::_M_construct null 无效
- html - 如何在 django 中使用引导模式对话框?
- javascript - Node.js 和浏览器之间的测试行为不同
- android - org.json.JSONException: adr 没有值