希望一切顺利。我有一个MS-Sql数据库,我想在php中使用它。我的php版本是5.4,所以我在php中安装了适用于php和Sql Server的Microsoft驱动程序"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子句中使用Ö、É、Ü、ß等德语元音时,查询不会返回任何数据。但如果没有这些,我就会得到数据。请告诉我如何解决这个问题。
问候
连接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/
您应该在为数据库搜索创建表时指定排序规则。作为目前的本地修复程序,您只需更改相关表的排序规则即可(或仅其"value"
列)转换为"utf8_bin"
,它将工作:)