Php “如何修复”;[Microsoft][ODBC SQL Server驱动程序][SQL Server]附近的语法不正确'࿽'&引用;odbc中的错误?

Php “如何修复”;[Microsoft][ODBC SQL Server驱动程序][SQL Server]附近的语法不正确'࿽'&引用;odbc中的错误?,php,sql-server,odbc,Php,Sql Server,Odbc,我正在尝试使用odbc使用php连接到sql server数据库,它工作正常,然后我更改了sql查询,出现以下错误: 警告:odbc_exec():SQL错误:[Microsoft][odbc SQL Server驱动程序][SQL Server]附近语法不正确'�'., SQLExecDirect中的SQL状态37000位于 我试图回到最初的查询,但我得到了相同的错误 我检查了语法,找不到任何东西,在SQLServerManagementStudio上执行这两个查询时,都可以正常工作 $dsn

我正在尝试使用odbc使用php连接到sql server数据库,它工作正常,然后我更改了sql查询,出现以下错误:

警告:odbc_exec():SQL错误:[Microsoft][odbc SQL Server驱动程序][SQL Server]附近语法不正确'�'., SQLExecDirect中的SQL状态37000位于

我试图回到最初的查询,但我得到了相同的错误

我检查了语法,找不到任何东西,在SQLServerManagementStudio上执行这两个查询时,都可以正常工作

$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);

T-N°
是否允许该符号作为SQLServer中的列名我必须问,您的对象中是否真的包含字符
°
?另外,在(ab)中使用
和(NOLOCK)
有什么关系?为什么到处都放?您知道使用它们的提示的含义,对吗?@RiggsFolly该列存在,我不知道是否允许。@RiggsFolly SQL Server对象名可以有任何字符(除了
CHAR(0)
。用于存储值的数据类型是
sysname
,它是
nvarchar(128)的同义词
。但是,这并不意味着你应该使用这些字符。老实说,我仍然会使用字母数字字符,如果需要的话,*下划线(
)。当然不是
°
字符,这意味着您必须知道ASCII/Unicode值才能输入它。>_@Larnu我没有访问数据库的权限,他们给了我查询,我只实现了这些查询,这样我就可以在我的项目中使用它们。