0

可能重复:
php - 检查记录是否存在 db - 错误显示

我目前正在尝试将用户添加到数据库中。我想检查用户是否存在,如果存在,则只需更新几个字段。如果它没有,那么它应该完全插入一条新记录。

$result22 = mysql_query("SELECT COUNT(1) FROM newsite WHERE user = '$username'");

if($result22){
$SQL = "UPDATE newsite SET active = '1' WHERE user = '$username'";
$_SESSION['username'] = $_GET['user'];
$result = mysql_query($SQL);
echo("lol."); // TEST
header("Location: ./share.php?user=$username");

}
if(!$result22){

$SQL = "INSERT INTO newsite (user, active) VALUES ('".$username."', '1')";
$_SESSION['username'] = $_GET['user'];
$result = mysql_query($SQL);
echo("NOPE."); //TEST
header("Location: ./share.php?user=$username");
}
}

我不太确定为什么,但不管它总是输出“lol”。(又名,用户存在。)它完全忽略了另一个如果。

4

2 回答 2

2
$result22 = mysql_query("SELECT COUNT(1) FROM newsite WHERE user = '$username'");

if($result22){

除非您的 SQL 代码中有错误,否则mysql_query返回始终解析为的结果集true

还:

请不要mysql_*在新代码中使用函数。它们不再被维护,并且已经开始弃用过程。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-01-12T09:58:37.697 回答
0

也可以使用mysql_num_rows函数,返回最后一个结果集的行数

if(mysql_num_rows()>0)
{

}
于 2013-01-12T11:12:16.253 回答