我试图使它只能设置一次特定值,通过使它只能更新或设置,如果它等于null。出于某种原因,即使价值等于:"史蒂夫",PHP仍然能够成功回应成功。我究竟做错了什么?
PHP:
<?php
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
//select a database to work with
$selected = mysql_select_db("???????",$dbhandle)
or die("Could not select examples");
if(empty($_POST['OrderID']) || empty($_POST['UserName'])){
echo 'Failed. Fill out all fields.';
}
else{
$sql = mysql_query("SELECT * FROM orders WHERE order_id = '".$_POST['OrderID']."' AND LENGTH(accepter_name)= 0");
$row = mysql_fetch_row($sql); // get the single row.
echo $row['accepter_name']; // display the value.
if($row['accepter_name']==''){
$sql = mysql_query("UPDATE orders SET accepter_name= '".$_POST['UserName']."' WHERE order_id='".$_POST['OrderID']."'");
echo "Success";
}
else{
echo "Failed";
}
}
mysql_close($dbhandle);
?>
当我检查数据库时,接受者名称值被更改。
答案 0 :(得分:1)
您可以使用if( mysql_affected_rows($sql) == 1 ) instead of if($sql)
因为sql被执行并且它不会返回任何受影响的行。
因此,如果您检查受影响的行,当您的sql更新表中的至少一行时,它应返回1
答案 1 :(得分:0)
为什么不在where子句中使用IS NULL来检查accepter_name?