仅当php/mysql为空时更新值
谢谢你检查我的问题。如果该字段为空,我将尝试只更新数据库中的一个值(因此,如果有人试图注册一个已准备就绪的站点,则不会覆盖现有用户,并将输出一条错误消息)。我在下面列出了我最近尝试过的两个脚本。如果select语句不存在,则第一个脚本用于更新数据库,但如果在同一天和同一时间输入,则将覆盖用户。谢谢大家仅当php/mysql为空时更新值,php,mysql,Php,Mysql,谢谢你检查我的问题。如果该字段为空,我将尝试只更新数据库中的一个值(因此,如果有人试图注册一个已准备就绪的站点,则不会覆盖现有用户,并将输出一条错误消息)。我在下面列出了我最近尝试过的两个脚本。如果select语句不存在,则第一个脚本用于更新数据库,但如果在同一天和同一时间输入,则将覆盖用户。谢谢大家 $sql = ("SELECT `player1` FROM `users` where id = '$id' and Times = '$time'"); $result = $conn-
$sql = ("SELECT `player1` FROM `users` where id = '$id' and Times = '$time'");
$result = $conn->query($sql);
if ($result->fetch_assoc === NULL) {
$update_player = ("UPDATE users SET player1 = '$name' where id = '$id' AND Times = '$time'")
if($update_player){
echo "Date for $name inserted successfully!";
}
}
else {
echo 'That spot is all ready taken!';
}
//2nd script
$query=mysql_query("UPDATE users SET
player1 = isNULL (player1, $name)
where id = '$id' AND Times = '$time'" );
if($query){
echo "Data for $name inserted successfully!";
}
else {
echo 'That spot is all ready taken!';
}
下面的代码应该可以做到这一点:
$query=mysql_query("UPDATE users SET
player1='$name'
where id = '$id' AND Times = '$time' AND player1 IS NULL" );
if(mysql_affected_rows() == 1){
echo "Data for $name inserted successfully!";
}
else {
echo 'That spot is all ready taken!';
}
请注意,您应该改用pdo
或mysqli
函数 试试这个
while($row = $result->fetch_assoc) {
if($row['player1'] == NULL){
$update_player = ("UPDATE users SET player1 = '$name' where id = '$id' AND Times = '$time'")
}
我想你忘了说你的问题是什么。顺便说一句,请使用或而不是
mysql.*
,因为最后一个已弃用,将来将不受支持。可能NULL
信息应该是您查询中的一个条件。在SQL接口中尝试一些更深入的测试。