mysql update 更新数据时部分字段修改了部分字段没有修改

UPDATEmember_fieldsSETprovince='$province',city='$city'WHEREmid=4007更新数据库时,city字段有时能修... UPDATE member_fields SET province = '$province', city = '$city' WHERE mid = 4007

更新数据库时, city 字段有时能修改, 有时保持原值,莫名其妙。如果改成如下测试 ,province 每次都能修改,city 还是有时修改了,有时不变,很奇怪:

UPDATE member_fields SET province = '$city', city = '$city' WHERE mid = 4007

说明 $city 有值, 不知道是什么原因?

结构大概如下:
province varchar(10) gbk_chinese_ci
city varchar(20) gbk_chinese_ci
部分源代码:
$name = h(p('name'));
$id_card = h(p('id_card'));
$birthday = h(p('birthday'));
$gender = p('gender')=='女' ? '女' : '男';
$education = h(p('education'));
$profession = h(p('profession'));
$income = h(p('income'));
$province = h(p('province'));
$city = h(p('city'));

if($err->error_no == 0) {
$sql = "UPDATE {$tablepre}member_fields SET name = '$name', id_card = '$id_card', birthday = '$birthday', gender = '$gender', province = '$province', city = '$city', education = '$education', profession = '$profession', income = '$income' WHERE mid = $_SESSION[user_id]";
if($db->query($sql)) {
$err->add('扩展信息修改成功!');
$err->show( array('返回上一页'=>$_PHP_SELF) );
}
else{
$err->add('扩展信息修改失败!');
}
}

程序执行时本身不会报错。而且修改时 除city字段,都可以实时修改,只有city字段时而可以修改,时而不能修改,数据库用户拥有全部权限

欢迎指教,指出思路亦可。
展开
 我来答
suejohn
推荐于2018-05-09 · TA获得超过1176个赞
知道小有建树答主
回答量:1241
采纳率:0%
帮助的人:605万
展开全部
UPDATE member_fields SET province = '$city', city = '$city' WHERE mid = 4007

这种修改的时候,province 能保证每次得到最新的$city值?而city不可以?尝试查看提交页面,看city相对应的代码,是否和province 完全一致?还是有其他不同?

将提交页面覆写,将city改名,进行尝试

代码问题往往就是一个极小的疏忽导致的。仔细,再仔细。
娟子m666
2022-08-30
知道答主
回答量:6
采纳率:0%
帮助的人:3690
展开全部
请问你的问题解决了吗,我也遇到相同问题,修改7个字段,时而有那固定的4个字段没有修改到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MuCloudLi
2010-02-05 · TA获得超过480个赞
知道小有建树答主
回答量:802
采纳率:0%
帮助的人:745万
展开全部
有可能city是外键,或者有触发器对city操作,你仔细查一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freish
2010-02-05 · TA获得超过2878个赞
知道大有可为答主
回答量:3153
采纳率:0%
帮助的人:2698万
展开全部
在query之前echo一下你的sql语句呗!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6a7d11453
2010-02-05 · TA获得超过954个赞
知道小有建树答主
回答量:931
采纳率:50%
帮助的人:712万
展开全部
`city` = '$city'
试试看吧 我也不知道管不管用
是不是city和mysql有冲突 加两个小符号试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式