【发布时间】:2017-12-26 03:30:26
【问题描述】:
我是 php 新手,我制作了一个带有输入字段的 php 用户界面,用于制定、打印和执行显示数据库回复或错误的查询。
它通常可以正常工作,但是当我使用像 in 这样的重音字段进行查询时
"INSERT INTO `Nave` (`Targa`, `Nazionalità`, `Nome`) VALUES('0', 'italia', 'nave0');"
php 成功创建查询,打印并执行它而无需任何进一步修改,但它无法显示“'字段列表'中的未知列'Nazionalità'” 但是,如果我将 php 打印的完全相同的查询复制/粘贴到 phpmyadmin 中,它就可以工作(因此,'Nazionalità' 列确实存在)发生了什么?
请注意,如果 php 生成的查询没有带重音的字段,即使在 php 中也可以使用。 还要注意,我的 php 和 mysql 都没有任何处理口音的问题。所以它不是 How to make MySQL handle UTF-8 properly 的重复,因为这是 mysql 的个人问题,我的数据库工作正常。
编辑:到目前为止,所有答案都解释了如何修复数据库,但 数据库确实可以正常工作! 我不知道如何让它理解,阅读更多关于问题的家伙...... 但是第二个重复的建议是完全正确的,在那里我找到了我的解决方案,为了方便那些将访问此页面的人有同样的问题:“$mysqli->set_charset('把你的数据库中使用的相同字符集放在这里' );"或“mysqli_set_charset($link, 'charset');” 感谢您的帮助。
【问题讨论】:
-
检查您的表格列
Nazionalità或Nazionalita -
这个词里面有特殊字符
Nazionalità是à我不mysql支持这个 -
什么是数据库/表排序规则?您可能还需要先将 UTF-8 传递给连接
-
不要使用非 ASCII 字符作为列名或表名
-
检查您的数据库架构是否有正确的列名,或者可能是页面字符 (UTF-8) 编码?