biggod_
biggod_
采纳率100%
2015-02-03 14:41

php mysql update 语句数字正常插入,字母汉字不行

已采纳

php与mysql的结合使用,对于数字的话操作完全正确,数据库中表的属性是varchar,数据库中也是set utf8了,但问题应该不是这里,不只汉字不行,英文字母也不行,只要6个列中有一行非数字的话,更新不会失败,但是会全部列都变成空,update语句如下:
$query = "update user set Firstname='".$_GET[Firstname]."',Lastname='".$_GET[Lastname]."',Age='".$_GET[Age]."',Hometown='".$_GET[Hometown]."',Job='".$_GET[Job]."' where id=$_GET[id] ";
求大大们指导!谢谢!!!

代码:
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • sasdas_noman asfasfsdaf 6年前

    你看你第一次进这个页面的时候,参数有没有。第二次有没有参数。绝壁是你参数值没有的缘故

    点赞 评论 复制链接分享
  • David_Is_Me 你我他联盟 6年前

    $query那句,所有的$_GET[xxx] 都替换为$_GET['xxx'] ,加上单引号

    点赞 评论 复制链接分享
  • biggod_ biggod_ 6年前

    目前的问题是第一次操作是正确了,不管是数字还是字母还是中文,都可以,但是第二次的话就会全变空值,是否跟浏览器缓存有关?只要网页关了重新上就可以正常更新数据

    点赞 评论 复制链接分享
  • ohmygirl ohmygirl 6年前

    建议:
    1. 所有的$_GET[xxx] 都替换为$_GET['xxxx'] 也就是加上引号。
    2. update那句加上:
    if( isset($_GET['LastName'])){
    //update
    }

    否者你直接访问页面的时候,由于$_GET['xxxx']都是空的, 自然数据库中就被更新为空了。

    1. 貌似你应该用$_POST而不是GET
    点赞 评论 复制链接分享
  • chinmo 一把编程的菜刀 6年前

    这种情况没见过,一般只有是没有值才会有空,如果你确认获取到值了,那就不知道什么原因了
    这样,你输出

     $query = "update user set Firstname='".$_GET[Firstname]."',Lastname='".$_GET[Lastname]."',Age='".$_GET[Age]."',Hometown='".$_GET[Hometown]."',Job='".$_GET[Job]."' where id=$_GET[id] ";
    echo $query
    

    看看这个sql怎样的,然后放mysql里直接执行看看

    点赞 评论 复制链接分享
  • biggod_ biggod_ 6年前

    求大神指导吖,好怕沉了T__T

    点赞 评论 复制链接分享
  • biggod_ biggod_ 6年前

    如果有非数字的值的话,id正常,其他属性变空。

    点赞 评论 复制链接分享

相关推荐