比如有  生化危机1,生化危机2,生化危机3,生化危机4
我想输入【生化危机】后这四个全部输出我的语句是这样写的,但是查不出来,请问哪里错了$search=$_POST['search'];         //$search存的是从text里传过来的内容
$str="select * from game where g_name like '%".$search."%'";

解决方案 »

  1.   

    楼主可以先把$_POST['search']或是sql语句echo出来一下,确定是不是乱码了如果是乱码的话,那是post过来的东西需要转换字符集,需要使用iconv函数;如果echo出来的东西不是乱码
    在查询前,要先执行 set names gbk;或是set names utf8;具体要根据你数据库的设置
      

  2.   

    $str="select * from game where g_name like '%".$search."%'";echo $str;看一下具体内容是什么?另外检查一下你的字符集设置,先 set names 'xxx' 一下。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  3.   

    我们怀疑乱码不是说你显示的时候,而是传递参数到SQL的时候,比如
    select * from game where g_name like '%生化危机%'
    变成了
    select * from game where g_name like '%@#¥%……%'
      

  4.   

    设置过了,mysql_query("SET NAMES 'UTF8'");没用
    数据库表建立的时候用的charset=utf8
      

  5.   

    select * from game where g_name like '%生化危机%'
    直接到MYSQL的命令工具中直接执行这个SQL语句试一下,先抛开PHP的影响。