【发布时间】:2018-05-12 15:22:33
【问题描述】:
我正在开发一个可以安装在多台服务器上的项目。我遇到的问题是人们可以将他们的服务器和表格设置为不同的排序规则。在一台服务器上,我收到的错误是
PDOException: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
所以我想我通过在查询中添加COLLATE utf8_general_ci 来修复它。它在那里修复它并在我的服务器上运行,但后来其他人试图在他们的服务器上运行它并收到了
Syntax error or access violation: 1253 COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
我可以对我的查询做些什么来使其“正常工作”而不必担心 MySQL 服务器配置?查询如下,并将几个表连接在一起。我只包括了查询本身,而不是整个代码块。它是 PDO 中的预备语句。
SELECT t.tid, a.clientid, tt.status, ts.showactive FROM TABLE1 t INNER JOIN TABLE2 a ON t.related_asset = a.id INNER JOIN TABLE3 tt ON tt.tid = t.tid INNER JOIN TABLE4 ts ON ts.title = tt.status WHERE ts.showactive = 1
【问题讨论】: