问题1、在使用PHP语言做搜索功能的时候,遇到前端传到后台的值为乱码
问题2、在进行like查询是,绑定参数报错
过程总结:
1、搜索框效果图
2、搜索框代码
<div class="device_search" >
<form action="<?php echo Yii::app()->createUrl('tipexn/searchWord'); ?>"method="post" >
<input type="text" name="search" id="device_search_input" class="device_search_input" placeholder="search">
<input class="device_search_span" type="submit" value="">
</form>
</div>
3、后台接收参数使用:urldecode和htmlentities
$search= htmlentities(urldecode(Yii::app()->request->getParam('search')));
到此,成功接收中文,并且不乱码
4、数据库查询使用like,
$sql = "select * from TIPEXN_DataDef t where t.CHNName like :searchword or t.ShortCHNName like :searchword or Producer like :searchword or ProductionUnit like :searchword ";
$keyWords1 = '%'.$searchword.'%';
$data = Yii::app()->sdb->createCommand($sql)->bindParam(':searchword',$keyWords1,PDO::PARAM_STR)->queryAll();
自此,问题2解决
出现问题2的原因是:我再like后跟%,比如:
where t.CHNName like '%:search%' or t.ShortCHNName like '%:search%' or Producer like '%:search%' or ProductionUnit like '%:search%'
这样写看起来没有毛病,但是报参数绑定错误;至于为什么错,我也不知道,也许是写错了,大神们有什么想法,欢迎指导