php - 使用php在mysql中插入拉丁字符?

标签 php mysql

我有一个包含拉丁字符的数据库,例如 áéç 等。我可以使用 MySQL 插入带有这些字符的元组通过在那里编写 SQL 插入语句来管理界面。我也可以毫无问题地读取和显示它们。但我无法使用 PHP 正确插入新数据。

$mysqli = new mysqli("localhost", "root", "", "budgets");
$data = mysqli_real_escape_string($mysqli, "bananá");
$stmt = $mysqli->prepare("INSERT INTO items(id_budget, description, unit_price, quantity) VALUES (1, ?, 3, 3);");
$stmt->bind_param("s", $data);
$stmt->execute();

我读过几个建议使用mysqli_real_escape_string()的帖子,并确保字符集配置正确,但没有任何效果。

我尝试在数据库中使用不同的字符集,但 á 总是被奇怪的符号替换。目前我使用 utf8_general_ci 作为数据库的字符集。

预先感谢您提供的任何帮助。

最佳答案

首先将表行排序设置为 utf8_unicode_c

并将 $mysqli->set_charset("utf8"); 添加到您的连接代码

最后你的代码应该如下所示:

$mysqli = mysqli_connect(HOST_NAME,DB_USER,DB_PASS,DB_NAME);
if($mysqli === false) {
 die("Something was wrong ! Please try again later."); // Error if connection not ok.
} 
$mysqli->set_charset("utf8");
$data = "bananá";
$stmt = $mysqli->prepare("INSERT INTO items(id_budget, description, unit_price, quantity) VALUES (1, ?, 3, 3);");
$stmt->bind_param("s", $data);
$stmt->execute(); 
$stmt->close();
$mysqli->close();

关于php - 使用php在mysql中插入拉丁字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47981882/

相关文章:

PHPExcel 即时写入?

php - 如何建立全局联系?

php - 合并 2 个 mysql 结果的输出

java.lang.AbstractMethodError : com. mysql.jdbc.PreparedStatement.setBlob(ILjava/io/InputStream;)V

python - 更改 Django 默认模型设置

mysql - 合并行并将它们的值放在 mysql 中的单独列中

PHP 数据库写入性能 PDO VS ORM

javascript - 自动填充数据被 javascript 的 onchange 事件覆盖

php - 如何修改此查询,以便可以按每个帖子的评论数对结果进行排序?

mysql - 使用 VB.net 编写 Ebay Motors Pro xml 文件