我有一个希腊sql server 2008数据库,我用php获取数据到一个网站。数据库数据是nvarchar
。在连接到服务器时,我的字符集为utf-8
并在html文件charset="utf-8"
。
当我从数据库中获取数据时,一切都很好,但是当我尝试使用sqlsrv_field_metadata()
获取列名时,它会在浏览器中显示问号。
如果我从视图information_schema.columns
中获取列名,则显示正常。
我该怎么办?
有没有办法检查列名是nvarchar
?
* 更新: *事实证明这是一个用于php bug的sql server驱动程序,它已在Codeplex上添加了问题http://sqlsrvphp.codeplex.com/workitem/22417
答案 0 :(得分:0)
尝试与
连接sqlsrv_connect ($serverName, array('CharacterSet' => 'windows-1253'));
答案 1 :(得分:0)
您应该使用mssql模块而不是旧的sqlsrv库。
要打电话你会使用:
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB");
//execute a stored procedure:
$query = "exec eCommerce.dbo.products_GET_Product_php @productId = $pid, @countryCode = " . $_SESSION['cc'] . ", @sid = ". $_SESSION['sid'];
$result = mssql_query($query);
while($row = mssql_fetch_array($result))
{
$pagetitle = $row["product_name"];
}