使用php从sql server获取希腊列名

时间:2012-09-15 17:45:12

标签: php html sql-server encoding

我有一个希腊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

2 个答案:

答案 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"];
}