环境是php5.2  Apache  mysql5.5 $return是查询查出来的结果集再使用mysql_fetch_array()后得到的值
测试时每当$return['money']等于10000,100000,1000000时更新失败money和user_money字段是decimal类型两位小数
$gold = $return['money']/10000*5;
$sql = "update users set user_money=“.$gold.” where user_id=".$user_id;
$a = mysql_query($sql);如果把sql写成"update users set user_money=$gold where user_id=".$user_id;不做拼接的话就可以更新成功,我不知道这是什么原因导致的,求助。

解决方案 »

  1.   

    $sql = "update users set user_money=.$gold. where user_id=".$user_id;这两个引号你用了中文的,所以出错,改为英文的双引就可以。与是否拼接没有关系
    改为$sql = "update users set user_money=".$gold." where user_id=".$user_id;
    你直接复制上面这段就可以了。
      

  2.   

    $sql = "update users set user_money=‘$gold’ where user_id=‘$user_id’“;
    如果是全角的原因的话,就太低级了无论如何,当出现失败时,你总得先看一下 MySQL 给你的错误提示信息
    echo mysql_error();
      

  3.   

    把$sql打印出来看看。