UPDATEmember_fieldsSETprovince='$province',city='$city'WHEREmid=4007更新数据库时,city字段有时能修改,有时保持原值,莫名其妙。如果改成如下测试,province每次都能修改,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字段时而可以修改,时而不能修改,数据库用户拥有全部权限
欢迎指教,指出思路亦可。
展开