gpt4 book ai didi

php - 从php在数据库中插入特殊字符

转载 作者:行者123 更新时间:2023-11-29 21:01:28 25 4
gpt4 key购买 nike

我有一个 joomla 数据库,其中 mySQL 连接排序规则是 utf8_general_ci。我在数据库中有一些额外的数据表(与 joomla 安装无关),我想用 PHP 脚本中的数据填充它们。

稍后编辑:检查下面

当我尝试插入特殊字符(语言和区域特定字符)时,我在数据库中收到乱码,例如 ࡡșț 而不是 îăîşşş

joomla 数据库中所有列的排序规则为:utf8mb4_unicode_ci(如果这有任何区别)

奇怪的是,如果我在电子邮件/移动应用程序(基于浏览器)中显示数据库的内容,它会正确显示数据。但我可以看到,从 PHP 插入值有些不对劲,因为如果我从 phpmyadmin 面板手动插入它,该值将正确显示在表中。

<?php header('Content-type: text/html; charset=UTF-8');  //header is specified here

$value_to_insert = addslashes($_REQUEST['value']); //get the value from the parameter

inserttask($value_to_insert); //insert the value into the datatable

function inserttask($value_to_insert)
{
$con = mysqli_connect("host",username,password,database); //set up my mysqli connection
//mysql_set_charset('utf8'); //this didn't help

if (!$con)
{
die();
}

$sql = "INSERT INTO `table` (`value`) VALUES ('".mysqli_real_escape_string($con, $value_to_insert)."')";

if($result=mysqli_query($con,$sql))
{
print "OK";
}
else
{
print "ERROR";
}
}

?>

有什么想法应该如何制作此插入,以使其与任何区域相关字符兼容?

稍后编辑:我运行了“显示像'%collat​​ion%'这样的变量”collat​​ion_connection - utf8_general_cicollat​​ion_database - latin1_swedish_cicollat​​ion_server - latin1_swedish_ci

这可能是问题所在吗?

最佳答案

设置连接后,我必须以特定方式更改连接字符集。

$con = mysqli_connect("mydb12.surf-town.net","bosteen_licadm","Ugymate92","bosteen_p2p");

$con->set_charset("utf8");

在此之后,插入就可以工作了!

关于php - 从php在数据库中插入特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37188337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com