【问题标题】:SQLSRV Fatal error: Severe error translating UnicodeSQLSRV 致命错误:翻译 Unicode 时出现严重错误
【发布时间】:2015-08-10 21:01:39
【问题描述】:

我正在尝试在 PHP 中为 SQL Sever 数据库运行基本的 while 循环。我得到以下错误:

Fatal error: Severe error translating Unicode

该代码适用于另一个脚本,因此我认为这与我正在查询的表有关。这是我正在使用的代码

if(isset($_GET['uid']) && $_GET['uid'] != ''){
$uid = $_GET['uid'];
// check for user
$staffSQL = "SELECT * FROM staff WHERE userid = '".$uid."'";
$params = array();
$staff = sqlsrv_query( $conn, $staffSQL, $params, array("Scrollable"=>"buffered"));

$numStaff = sqlsrv_num_rows($staff);

if($numStaff  < 1){
    $response["error"] = TRUE;
    $response["error_msg"] = "No projects found!";
}else{
    while( $row = sqlsrv_fetch_array( $staff, SQLSRV_FETCH_ASSOC) ) {
        foreach($row as $key => $value) {
            echo "$key = $value <br />";
        }
    }
}

经过一番谷歌搜索,我找到了this link,但那里的建议代码只返回令人费解的胡言乱语。

【问题讨论】:

    标签: php sql-server unicode while-loop


    【解决方案1】:

    好的,经过一番谷歌搜索后,我发现this page 表示解决方案是在 sqlsrv_connect 函数中添加 CharacterSet 选项。

    $result = sqlsrv_connect($hostname, array(
        'UID' => $username,
        'PWD' => $password,
        'Database' => $database,
        'ConnectionPooling' => ($pooling) ? 1 : 0,
        "CharacterSet" => "UTF-8"       // <---- voila
    ));
    

    我已经对此进行了测试,并且效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多