Php 无法将UTF-8字符串添加到MySQL中?
我无法将UTF-8字符串添加到MySQL数据库中。代码如下:Php 无法将UTF-8字符串添加到MySQL中?,php,mysql,database,utf-8,insert,Php,Mysql,Database,Utf 8,Insert,我无法将UTF-8字符串添加到MySQL数据库中。代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <?php $temp='papà'; mysql_query("SET NAMES utf8
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
$temp='papà';
mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
mysql_query("INSERT INTO comment VALUE ('$temp')") or die(mysql_error());
?>
</body>
</html>
DB中的变量是CHAR120,使用非utf8字符串时,它可以正常工作。
如果SQL语法ecc中有错误,则该错误是通用错误
提前感谢您的帮助。使用以下代码:
<?php header('Content-Type: text/html; charset=utf-8'); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
$temp='papà';
mysqli_query("INSERT INTO comment VALUE ('$temp')") or die(mysqli_error());
?>
</body>
</html>
停止使用mysql_*并开始使用mysqli_*或使用PDO在转换为mysqli_*后,使用set_字符集。不要做其余的部分。PDO在dsn中具有字符集
表格中的列是否为utf8字符集
编码utf8中的字节是否已编码?在utf8中,则A的十六进制为C3A0。在拉丁文1中,它是F0
使用VARCHAR几乎总是比CHAR好
如果您遇到更多问题,请选择col,HEXcol FROMcoment…;-这可能会给我们最好的线索,知道还有什么东西坏了。角色是什么?MySQL的UTF8不是真正的UTF8。你试过utf8mb4吗?请。它们不再得到维护,而是在使用。学习替代,并考虑使用PDO,是的,也尝试了UTF8Mb4,现在似乎没有什么变化。例如,字符是欧元符号,保存为–愚蠢的问题,但您的PHP文件是否由文本编辑器以UTF-8编码?请向我们显示语法错误消息的其余部分-它指向错误所在!