UPDATE mi_client SET inner_image='内层图像转移,比如说线宽公差,线间公差' WHERE client_code=001
上面SQL语句在MySQL中能执行,但是用变量替换就不能更新了,
详细过程如下:
<?php
  $keyword = "inner_image";
  $keyshow = "内层图像转移,比如说线宽公差";
  $client_code = "001";
  $updateSQL = "UPDATE mi_client SET ";
  $updateSQL .= $keyword."='".$keyshow."'";
  $updateSQL .= " WHERE client_code=".$client_code;
?>
显示变量updateSQL内容为"
UPDATE mi_client SET inner_image='内层图像转移,比如说线宽公差,线间公差' WHERE client_code=001",但运行时出现"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 '='' WHERE client_code=001' at line 1"语法错误,不知是不是单引号所起的问题,因为变量keyword与keyshow无法正常得到有效值

解决方案 »

  1.   

    mysql_query("set character_set_client='gb2312'");
    mysql_query("set character_set_connection='utf8'");
    客户端使用gb2312,连接时使用utf8连接
      

  2.   

    看你写的看得眼花。何不这样写?
    <?php
    $keyword = "inner_image";
    $keyshow = "内层图像转移,比如说线宽公差";
    $client_code = "001";
    $updateSQL = "UPDATE mi_client SET $keyword=$keyshow  where client_code=$client_code";
    ?>
      

  3.   

    $keyshow = mysql_escape_string("内层图像转移,比如说线宽公差");$updateSQL = "UPDATE mi_client SET $keyword='$keyshow'  where client_code=$client_code";
      

  4.   

    mysql_query("set character_set_client='gb2312'");
    mysql_query("set character_set_connection='utf8'");
    客户端使用gb2312,连接时使用utf8连接
      

  5.   

    主要问题是keyword这个变量是上个页面传递过来的,运行时keyword这个变量没有了??
    好像MySQL5.0不支持动态SQL语句,看样子只能将keyword这个变量改成常量了,否则还是有以下出错提示
    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 '='内层图像转移,比如说线宽公差' where client_code=001' at line 1
    (keyword此变量没有赋值)
      

  6.   

    尝试转义字符如何? 另外建议在WHERE的条件里的值都加个引号,即使是数字
      

  7.   

    1、转义
    2、最好这样`key` = 'Value'
      

  8.   

    一句SQL为什么写成那个样子呢?
    addslash / mysql_escape_string
      

  9.   

    主要问题是keyword这个变量是上个页面传递过来的,运行时keyword这个变量没有了??
    ---------------------
    用$_POST或者$_GET来取提交的变量"UPDATE mi_client SET ".$keyword."='".$keyshow."' where client_code=".$client_code;
      

  10.   

    $updateSQL = "UPDATE mi_client SET $keyword='$keyshow'  where client_code=$client_code";echo $updateSQL看一下
    把打印出来的拿去mysql中运行。
    ------------------------------------
    还有就是那个client_code你注意一下是什么类型