[英]Bad encoding while insert mysqli record using php prepared statment
我想使用prepared statments
在php
插入一些波斯语单词作为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.