这里我有一个问题,我想设置状态,无论是批准还是拒绝..条件是如果管理员选择注册号和驱动程序名称,这意味着状态是批准否则,如果管理员填写原因,这意味着请求被拒绝.. 这是设置状态的代码
if ($reason =='null'){
$query2 = "UPDATE usage SET status ='APPROVED' WHERE '$bookingno'=bookingno";
$result2 = @mysql_query($query2);
}
elseif (($regno =='null')&&($d_name =='null')) {
$query3 = "UPDATE usage SET status ='REJECT' WHERE '$bookingno'=bookingno";
$result3 = @mysql_query($query3);
}
当我保存数据时,状态字段不是更新..
答案 0 :(得分:1)
两件事:
(1)'null'(带引号)是一个字符串。你可能只想要 null (和identity rather than an equality检查) - 或者更好的是,使用 is_null() , isset() 或 empty() (根据您的情况更合适)。
(2)如果您的状态字段是ENUM()(它应该是),请确保您已获得大写。通常它应该没关系,但如果你的表被设置为任何类型的二进制字符编码(*_bin Collation),它将会。
答案 1 :(得分:0)
看起来你的where子句格式不正确。改变这个:
$query2 = "UPDATE usage SET status ='APPROVED' WHERE '$bookingno'=bookingno";
到此:
$query2 = "UPDATE usage SET status ='APPROVED' WHERE bookingno='$bookingno'";
(适用于$query2
和$query3
)。
看看是否无法修复它。
答案 2 :(得分:0)
解决此问题的一种非常简单的方法是在查询字符串创建时记录
if ($reason =='null'){
$query2 = "UPDATE usage SET status ='APPROVED' WHERE '$bookingno'=bookingno";
$result2 = @mysql_query($query2);
error_log($query2);
}
elseif (($regno =='null')&&($d_name =='null')) {
$query3 = "UPDATE usage SET status ='REJECT' WHERE '$bookingno'=bookingno";
$result3 = @mysql_query($query3);
error_log($query3);
}
然后去检查在php错误日志文件中创建的查询字符串,如果查询不起作用,则本机运行查询,或者如果你使用mysql则运行phpmyadmin ....看看你是否收到错误。有时你会发现你的varibales没有按照意图填充,这将由日志文件显示。