$pro=array();
$pro=array(
"question" => $_POST['question'],
"option1" => $_POST['option1'],
"option2" => $_POST['option2'],
"option3" => $_POST['option3']
);
$id = $_POST['id'];
$row=mysql_query("update survey set option1=".$pro['option1']."");
if($row)
{
$successList = array("message" => "文章修改成功.");
}
else
{
$errorList = array("message" => "文章修改失败.");
}
// 显示信息
showMessage();
修改为
$row=mysql_query("update survey set option1='".$pro['option1']."'");
option1这个变量如果是int类型的话,你第一句是可以的,如果是字符,这个是更新不进去的,需要在变量外面加入单引号('变量值');
还有一点,这个更新操作,最好别判断$row,因为如果用户在修改的时候,想来想去,最终所有字段都未修改,你这个程序进去了,最终还是会判断的,但是你sql语句没有修改,还是原来的值sql默认是不会做操作的,也就是说没修改的情况下,$rows还是返回false,这样你这个就会提示文章修改失败!!
希望能对你有所帮助追问
谢谢,那应该判断什么啊?我是新手,求指教。
追答$affectedrows = mysql_affected_rows() 函数来获取影响的行数
如果没修改提交了,这个$affectedrows会是0,
正常修改的话$affectedrows是有>0的值(大于0的操作常见批量删除操作中)
但是问题又来了,如果别人乱填一个的话,比如要求填入的是int类型,你来个varchar,那一样失败哦。
所以更新操作我们通常是在更新前需要做足够的判断(排除了由于变量类型错误导致的更新失败),然后直接 $row=mysql_query("update survey set option1='".$pro['option1']."'");
后面直接显示成功==>$successList = array("message" => "文章修改成功.");
over!
你的这句话错了多了一个引号,
$row = mysql_query("update survey set option1=".$pro['option1']);
这样就行了或者
$row = mysql_query("update survey set option1=$pro['option1']");