$link=mysql_connect("localhost","root","906200");   
 mysql_select_db("manage");
$sql="select * from commodity where commodity_name=".$name;/////////报错说这句不对!!!????
$result=mysql_query($sql)or die(mysql_error());
$num = mysql_num_rows($result);
echo $num;
if($num>0){
while($rs=mysql_fetch_object($result))
     {
       $c_id=$rs->commodity_id;
       $c_name=$rs->commodity_name;
       $c_kind=$rs->commodity_kind;
       $c_price=$rs->commodity_buyprice;
       echo "<tr><td>". $c_id."</td><td>".$c_name."</td><td>".$c_kind."</td><td>". $c_price."</td><td>";
      }
   mysql_close(); 
}已经验证前一网页把值成功传入$name,报错说You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''select * from commodity where commodity_name='饼干' at line 1 这是为什么嘞(表名是commodity)
 
 

解决方案 »

  1.   

    $sql="select * from commodity where commodity_name='$name'";
      

  2.   

    查找/更新/插入的字段如果是 varchar,char,text等类型 需要使用引号将内容括起来.
      

  3.   

    改了之后会报错Illegal mix of collations (big5_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' 
     
     
    这个是为什么啊
      

  4.   

    贴出出错时的 $sqlbig5_chinese_ci ???
    你的 $name 是什么编码的?
      

  5.   

    =两边的编码不一致一个是latin1_swedish_ci 一个是big5_chinese_ci
    注意统一编码
      

  6.   

    我建表的时候整理那一项不知道该选什么,就都选了big5_chinese_ci 。。表里的字段都是这个类型啊
      

  7.   

      1  commodity_id varchar(30) big5_chinese_ci  否 无   修改   删除  更多   浏览非重复值 (DISTINCT)
     2  commodity_name varchar(20) big5_chinese_ci  否 无   修改   删除  更多   浏览非重复值 (DISTINCT)  
      3  commodity_kind varchar(20) big5_chinese_ci  否 无   修改   删除  更多   浏览非重复值 (DISTINCT) 
      4  commodity_buyprice varchar(10) big5_chinese_ci  否 无   修改   删除  更多   浏览非重复值 (DISTINCT)
     
        
    这是表的情况
      

  8.   

    http://C:/Users/Administrator/Desktop/QQ截图20120420092152.png
    http://C:/Users/Administrator/Desktop/QQ截图20120420092222.jpg
    贴图不是这么贴的,得先传到网上...比如你的csdn空间建表的时候统一编码,建议utf-8  然后把你所有环境的编码都统一
      

  9.   

    在你连接数据库时加上:mysql_query(“set names gbk”);
      

  10.   

    utf-8里有好多选项,具体选哪个啊。。还有怎么统一环境编码嘞。。?我用的wamp
      

  11.   

    utf8_general_ci
    然后你的php,html文件都保存为UTF-8格式。就不会再有乱码的困扰了
      

  12.   

    说的是,一个个改为utf8_general_ci,这是最通用的
    注意:对于int型变量不用改
    主要改三点,
    一是数据库类型有一个地方
    二是表属性有一个地方
    三是每个字段非int型都有一个地方
    连接数据库后
    mysql_query("set NAMES utf-8");
    以后所有的中文操作都不用你再担心编码问题出现
    (多注意chatset=utf-8;或是php页面属性dw改为utf-8)
      

  13.   

    windows环境的话就全用gbk,linux环境就全用utf8,包括html的http-equiv,数据库编码,php文件编码(与系统locale相同)。
      

  14.   

    统一编码首先,确定你的文件的字符编码,第二,确定你数据库连接时输入输出的编码,第三,确定你数据库,表,字段的字符编码。这些药全部一致才行最好都用UTF-8。我一般用的是utf8_general_ci
      

  15.   

    我设置完了,数据库插入正常了,但是查询时,$num返回的值是0,表里明明有记录的呀。。