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字段时而可以修改,时而不能修改,数据库用户拥有全部权限
欢迎指教,指出思路亦可。 展开
更新数据库时, 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字段时而可以修改,时而不能修改,数据库用户拥有全部权限
欢迎指教,指出思路亦可。 展开
5个回答
展开全部
请问你的问题解决了吗,我也遇到相同问题,修改7个字段,时而有那固定的4个字段没有修改到。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有可能city是外键,或者有触发器对city操作,你仔细查一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在query之前echo一下你的sql语句呗!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
`city` = '$city'
试试看吧 我也不知道管不管用
是不是city和mysql有冲突 加两个小符号试试看
试试看吧 我也不知道管不管用
是不是city和mysql有冲突 加两个小符号试试看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询