使用php准备的语句插入mysqli记录时编码错误
我想在使用php准备的语句插入mysqli记录时编码错误,php,mysql,mysqli,Php,Mysql,Mysqli,我想在php中插入一些波斯语单词作为mysql数据,使用prepared stations。 这是我的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
php
中插入一些波斯语单词作为mysql
数据,使用prepared stations
。
这是我的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" />
但是仍然存在编码问题。
任何想法都会有帮助。
谢谢这个字符集在MySQL中被称为
utf8
,而不是utf-8
。如果您的版本足够新,最好使用utf8mb4
以实现完全的UTF-8兼容性。另外,最好使用mysqli\u set\u charset
函数,而不是set NAMES
查询。在查询中使用此函数
$mysqliObj->set_charset("utf8");