希望一切都好。我有一个MS Sql数据库,我想在PHP中使用。我的php版本是5.4所以我在PHP中安装了PHP驱动程序的PHP驱动程序'php_sqlsrv_54_ts.dll'。 Beow是我的代码:
$serverName = "Myserver";
$connectionInfo = array( "Database"=>"database", "UID"=>"userid", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
$sql = "select * from AVE_Stamm WHERE Strasse='Friesenstraße 20'";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['Firma'].", ".$row['Strasse']."<br />";
}
sqlsrv_free_stmt( $stmt);
我面临的问题是,当我在where子句中使用Ö,Ä,Ü,ß等德语元音时,查询不会返回任何数据。但没有它,我得到了数据。请告诉我如何解决这个问题。
此致
答案 0 :(得分:1)
连接SQL Server时,始终将编码设置为UTF-8。另外,将脚本保存为UTF-8。
用于设置连接编码的MSDN示例:http://msdn.microsoft.com/en-us/library/cc626307.aspx
或另一个:http://www.johnro.net/2012/07/25/php-sqlsrv-problems-with-utf-8-values-set-your-characterset-option/
答案 1 :(得分:0)
在为数据库搜索创建表时,应指定排序规则。
作为现在的本地修复,您只需更改相关表的排序规则即可
(或只有"value"
列)到"utf8_bin"
,它会起作用:)