繁体   English   中英

使用php准备好的语句插入mysqli记录时编码错误

[英]Bad encoding while insert mysqli record using php prepared statment

我想使用prepared statmentsphp插入一些波斯语单词作为mysql数据。 这是我的php代码:

$mysqliObj = new mysqli(HOST, USER_NAME, PASSWORD, DB_NAME);

mysqli_query($connection, "SET NAMES utf-8");
$stmt = $mysqliObj->prepare("INSERT INTO slideshow (slide_url, slide_title, slide_comment) VALUES (? , ? , ?)");
$stmt->bind_param('sss', $val1, $val2, $val3);
$val1 = $slidePathName;
$val2 = $_POST['title'];
$val3 = $_POST['comment'];
$result = mysqli_stmt_execute($stmt);
$stmt->close();

插入效果很好,但是在phpMyAdmin显示了类似آموزش اندروید پایه搜索结果,我发现了这一行:

mysqli_query($connection, "SET NAMES utf-8");

并像这样设置php标头:

<?php header('Content-Type: text/html; charset=utf-8'); ?>

并在html中:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

但编码仍然有问题。 任何想法都会有所帮助。 谢谢

在查询中使用它。

$mysqliObj->set_charset("utf8");

该字符集在MySQL中称为utf8 ,而不是utf-8 最好,如果您的版本足够新,请使用utf8mb4以获得完整的UTF-8兼容性。 还最好使用mysqli_set_charset函数,而不要使用SET NAMES查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM