php和mysql重音问题
我是php新手,我制作了一个带有输入字段的php用户界面,用于制定、打印和执行显示数据库回复或错误的查询 它通常工作得很好,但当我用重音字段(如中)进行查询时php和mysql重音问题,php,mysql,Php,Mysql,我是php新手,我制作了一个带有输入字段的php用户界面,用于制定、打印和执行显示数据库回复或错误的查询 它通常工作得很好,但当我用重音字段(如中)进行查询时 "INSERT INTO `Nave` (`Targa`, `Nazionalità`, `Nome`) VALUES('0', 'italia', 'nave0');" php成功地创建了查询,打印并执行了查询,而没有进行任何进一步的修改,但在“字段列表”中显示“未知列‘Nazionalitá’”失败 但是如果我将php打印的同一个查
"INSERT INTO `Nave` (`Targa`, `Nazionalità`, `Nome`) VALUES('0', 'italia', 'nave0');"
php成功地创建了查询,打印并执行了查询,而没有进行任何进一步的修改,但在“字段列表”中显示“未知列‘Nazionalitá’”失败
但是如果我将php打印的同一个查询复制/粘贴到phpmyadmin中,它就可以工作了(显然“Nazionalitá”列确实存在),会发生什么
请注意,如果php生成的查询没有带重音的字段,它甚至可以在php中工作。
另外请注意,我的php和mysql在处理重音方面都没有任何问题。因此它不是的副本,因为这是mysql的个别问题,我的数据库工作正常
编辑:到目前为止,所有的答案都解释了如何修复数据库,但是数据库运行良好强>
我不知道如何让它理解,阅读更多关于这个问题的家伙。。。
但是第二个重复的建议是非常正确的,我在这里找到了我的解决方案,我将其复制到这里,以方便那些将要访问此页面的人遇到同样的问题:“$mysqli->set_charset('put here the same charset use use in your db');”或“mysqli_set_charset($link,'charset');”
感谢您的帮助。按照MySQL查询将数据库的字符集更改为UTF-8
ALTER TABLE Nave CONVERT TO CHARACTER SET utf8;
检查您的表列
Nazionalitá
或Nazionalita
这个单词中有特殊字符Nazionalitá
是a
我不支持这一点数据库/表排序规则是什么?您可能需要首先将UTF-8传递到连接,并且不要将非ASCII字符用作列或表名称检查您的DB架构是否有正确的列名,或者是否有页面字符(UTF-8)编码?