【问题标题】:(mysql + sqlalchemy) check a str collation before insertion(mysql + sqlalchemy) 在插入前检查 str 排序规则
【发布时间】:2019-11-04 02:30:05
【问题描述】:

我有一个用户表,其中有一个唯一的列“昵称”。 此表的排序规则是 'utf8mb4_0900_ai_ci'。

我发现有人试图将他/她的昵称设置为“????”这是 utf8_general_ci,COERCIBLE 字符。

并且...发生了错误。

'(MySQLdb._exceptions.OperationalError) (1267, "Illegal mix '
                  'of collations (utf8mb4_0900_ai_ci,IMPLICIT) and '
                  '(utf8_general_ci,COERCIBLE) for operation \'=\'") ...

我不想更改用户表排序规则或让某人的昵称充满表情符号。 所以......我想确保用户输入符合排序规则utf8mb4_0900_ai_ci。我该怎么做?

提前谢谢你!

【问题讨论】:

  • 数据库已经为您强制执行。只需处理异常并向用户返回有用的消息。

标签: mysql python-3.x sqlalchemy


【解决方案1】:

把你的程序数据库连接字符集改成utf8mb4,看起来效果不错,但是我的程序是php,你可以自己试试!

【讨论】:

  • 如果这是一个有效的解决方案,它不应该依赖于语言
猜你喜欢
  • 2011-04-19
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2015-12-04
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多