php mysqli使用预准备语句时从数据库中检索特殊字符

时间:2015-04-01 09:40:26

标签: php mysqli prepared-statement special-characters

我正在转换php脚本以使用预准备语句。 但是当我从数据库中获取一段文本时,特殊字符将替换为 。

示例:

该数据库包含以下文本: 测试'éï'测试
(用phpadmnin验证它存在)

if ( $stmt = $mysqli->prepare ( "SELECT act_omschr FROM jag_activiteiten" ) )
{   
    $stmt->execute();
    $stmt->store_result();  
    $stmt->bind_result ( $DBomschrijving );
    $stmt->fetch();

    if ( $stmt->num_rows )
    {
        echo "$DBomschrijving";
    }

    $stmt->close();
}

结果我得到以下内容: 测试 测试。

有什么方法可以解决这个问题吗?

编辑:

将我的数据库表更改为utf8_unicode_ci,但它没有解决问题。 但是与DDA的下方结合使用它可以解决问题。

$mysqli = new mysqli ( $loginURL, $dbusername, $dbpassword, $database );    
$mysqli->set_charset ( "utf8" );)

1 个答案:

答案 0 :(得分:1)

与PDO相同的问题我使用了$bdd=new PDO("mysql:host=$hostname_conn;dbname=$database_conn","$username_conn","$password_conn"); $bdd->EXEC('SET CHARACTER SET utf8');

...但您的数据库必须是utf-8