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


Fetching greek column names from sql server with php

我有一个希腊sql server 2008数据库,我用php将数据获取到一个网站。数据库数据是nvarchar。在与服务器的连接中,我将字符设置为utf-8,并在html文件中设置为charset="utf-8"

当我从数据库中获取数据时,一切都很好,但当我尝试使用sqlsrv_field_metadata()获取列名时,它会在浏览器中显示为带问号。如果我从视图information_schema.columns中获取列名,它们会显示得很好。

我该怎么办?

有没有办法检查列名是否为nvarchar

*更新:*事实证明,这是php错误的sql server驱动程序,该问题已添加到Codeplex上http://sqlsrvphp.codeplex.com/workitem/22417

尝试连接

sqlsrv_connect ($serverName, array('CharacterSet' => 'windows-1253'));

您应该使用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"];
}