Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php准备的语句插入mysqli记录时编码错误_Php_Mysql_Mysqli - Fatal编程技术网

使用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");