【发布时间】:2016-04-27 15:30:01
【问题描述】:
嗨,在我的 sql 查询中,我遇到了这个错误,有人可以帮我解决这个问题吗?
编辑:我添加了我的 JavaScript 代码,我认为问题在于我的 JavaScript 代码,因为当我直接使用我的 PHP 代码而不发送 post 方法时,它也可以工作,但是使用 JavaScript 我有这样的问题。
错误:
Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like' [1267]
An sql error occurred while fetching this page. Please contact an administrator if this problem persists
表格
CREATE TABLE IF NOT EXISTS `core_members` (
`member_id` mediumint(8) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
PRIMARY KEY (`member_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
PHP:
@$key = $_POST['key'];
$result = $db->sql_query("SELECT member_id, name FROM core_members WHERE name LIKE '%{$key}%' LIMIT 10");
while ($row = $db->sql_fetchrow($result)) {
....
}
$db->sql_close();
JS:
$('#typeahead').keyup(function() {
if (this.value.length < 4) return;
var searchField = $('input.typeahead').val();
$.ajax({
type: "POST",
url: "./_api.php",
data: 'mod=searchFF&key=%' + searchField,
success: function(data) {
$(".tt-suggestions").html(data);
}
});
});
【问题讨论】:
-
为什么
$.ajax的data字段中有% -
好点,谢谢你解决了我的问题。