php mysqli 使用准备语句时从数据库中检索特殊字符
phph mysqli Retrieve special characters from database when using prepared statements
我正在将 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" );)
对于我使用的 PDO 的相同问题
$bdd=new PDO("mysql:host=$hostname_conn;dbname=$database_conn","$username_conn","$password_conn");
$bdd->EXEC('SET CHARACTER SET utf8');
...但是你的数据库必须是 utf-8
我正在将 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" );)
对于我使用的 PDO 的相同问题$bdd=new PDO("mysql:host=$hostname_conn;dbname=$database_conn","$username_conn","$password_conn");
$bdd->EXEC('SET CHARACTER SET utf8');
...但是你的数据库必须是 utf-8