【发布时间】:2012-03-07 05:21:44
【问题描述】:
我通过以下方式从 SQL 数据库查询 php 页面:
$virtual_dsn = 'DRIVER={SQL Server};SERVER=myserver;DATABASE=mydatabase';
$connection = odbc_connect($virtual_dsn,user,pass) or die('ODBC Error:: '.odbc_error().' :: '.odbc_errormsg().' :: '.$virtual_dsn);
odbc_exec($connection,mydatabase);
$query = "SELECT * FROM mytable WHERE myfield = 'Séjourné'";
$result = odbc_exec($connection, $query);
我知道表中有应该与此查询匹配的行,但它们没有被返回。我已将问题缩小到“é”字符;即没有该字符的查询按预期返回,但我无法查询包含“é”的记录。我怀疑这个问题与字符的编码有关。我希望有某种方法可以指定应该为我的 ODBC 连接或查询使用什么字符集。如果有我找不到。
我错过了什么。谢谢。
【问题讨论】:
-
检查这个:stackoverflow.com/a/7308476/206502>
-
如果这是您的真实代码,则引用无效:
$query = 'SELECT * FROM mytable WHERE myfield = 'Séjourné';将查询字符串括在双引号中。 -
我更正了有问题的类型。那不是问题所在。该代码适用于除带有“é”的查询之外的查询。