【问题标题】:php and mysql accent issues [duplicate]php和mysql口音问题[重复]
【发布时间】: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) 编码?

标签: php mysql


【解决方案1】:

按照 MySQL 查询将您的数据库字符集更改为 UTF-8

ALTER TABLE Nave CONVERT TO CHARACTER SET utf8;

【讨论】:

    猜你喜欢
    • 2020-12-09
    • 1970-01-01
    • 2016-02-18
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    相关资源
    最近更新 更多