我是php新手,我创建了一个带有输入字段的php用户界面,用于制定,打印和执行显示数据库回复或错误的查询。
它通常可以正常工作,但是当我用
中的重音字段进行查询时"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');” 谢谢你的帮助。
答案 0 :(得分:0)
按照MySQL查询
将数据库的字符集更改为UTF-8ALTER TABLE Nave CONVERT TO CHARACTER SET utf8;