gpt4 book ai didi

PHP 连接 SQL Server 2008 - 如何使用 odbc_connect 设置 utf-8

转载 作者:可可西里 更新时间:2023-11-01 12:38:48 26 4
gpt4 key购买 nike

我用ODBC连接sql server 2008之类的

$virtual_dsn = 'DRIVER={SQL Server};SERVER=MyServerName;DATABASE=myDatabase';
$conn = odbc_connect($virtual_dsn,'sa','mypass') or die('ODBC Error:: '.odbc_error().' :: '.odbc_errormsg().' :: '.$virtual_dsn);

if (!$conn){
if (phpversion() < '4.0'){
exit("Connection Failed: . $php_errormsg" );
}
else{
exit("Connection Failed:" . odbc_errormsg() );
}
}

// This query generates a result set with one record in it.
$sql="SELECT TOP 10 * FROM Mytable";

# Execute the statement.
$rs=odbc_exec($conn,$sql);

// Fetch and display the result set value.
if (!$rs){
exit("Error in SQL");
}
while (odbc_fetch_row($rs)){


$col1=odbc_result($rs, "name");
echo "$col1 <br>";

}

// Disconnect the database from the database handle.
odbc_close($conn);

但是我得到的文本不正确,比如

b?o c?�o việc sử dụng

我尝试使用 odbc_exec($conn, "SET names utf8");但是报错

 Warning: odbc_exec(): SQL error: [Microsoft][SQL Server Native Client 10.0][SQL Server]'names' is not a recognized SET option., SQL state 37000 in SQLExecDirect in C:\xampp\htdocs\sql\index.php on line 32

如何使用 odbc_connect 设置 utf-8 谢谢

最佳答案

odbc_exec 不接受“SET NAMES utf8”作为第二个参数。第二个参数必须是查询。

设置 utf8 仅用于变量 使用 utf8_decodeiconv

$col1=utf8_decode(odbc_result($rs, "name"));

$col1=odbc_result($rs, "name");
iconv("UTF-8", "CP1252", $col1);

Warning: odbc_exec(): SQL error: [Microsoft][SQL Server Native Client 10.0][SQL Server]'names' is not a recognized SET option., SQL state 37000 in SQLExecDirect in C:\xampp\htdocs\sql\index.php on line 32

这不是错误,是警告。但检查 odbc_exec手册,以确保所有。

关于PHP 连接 SQL Server 2008 - 如何使用 odbc_connect 设置 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18731431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com