Home > php教程 > php手册 > body text

zen cart 订单搜索功能,使用中文关键字搜索,出现 Illegal mix of collations for o

WBOY
Release: 2016-06-13 11:28:34
Original
737 people have browsed it

zen cart版本为1.3.9

进入zen cart后台,客户管理-》订单管理,使用订单搜索功能,关键字为中文:李超,搜索时出现如下错误:

1271 Illegal mix of collations for operation 'like'
in:
[select count(*) as total from (zc_orders_status s, zc_orders o ) left join zc_orders_total ot on (o.orders_id = ot.orders_id and ot.class = 'ot_total') where (o.orders_status = s.orders_status_id and s.language_id = '2') and (o.customers_city like '%李超%' or o.customers_postcode like '%李超%' or o.date_purchased like '%李超%' or o.billing_name like '%李超%' or o.billing_company like '%李超%' or o.billing_street_address like '%李超%' or o.delivery_city like '%李超%' or o.delivery_postcode like '%李超%' or o.delivery_name like '%李超%' or o.delivery_company like '%李超%' or o.delivery_street_address like '%李超%' or o.billing_city like '%李超%' or o.billing_postcode like '%李超%' or o.customers_email_address like '%李超%' or o.customers_name like '%李超%' or o.customers_company like '%李超%' or o.customers_street_address like '%李超%' or o.customers_telephone like '%李超%' or o.ip_address like '%李超%')]

从SQL语句方面分析这个问题,发现是 o.date_purchased like '%李超%' 导致整个SQL语句执行报错

在 MySQL 5.5 以上, 若字段 Type 是 time,date,datetime 

在 select 時若使用 like '%中文%' 会出現 Illegal mix of collations for operation 'like'

在写程序时要对每个字段进行搜索,在执行时可能就会出现时间字段 like '%中文%' 这种语法,

这在比较久的版本MySQL是不会出现错误的。但是升级到MySQL 5.5以上,必需改成like binary '%中文%' 即可避免出现错误

 

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template