问题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%'

这样写看起来没有毛病,但是报参数绑定错误;至于为什么错,我也不知道,也许是写错了,大神们有什么想法,欢迎指导

更多推荐

PHP+html实现搜索功能,