我有一个希腊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"];
}