使用if语句检查记录是否存在mysql / php

时间:2013-01-12 09:51:51

标签: php mysql sql

  

可能重复:
  php - check record exists db - error show

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

$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");
}
}

我不确定为什么,但无论它总是输出“哈哈”。 (也就是说,用户存在。)它完全忽略了另一个。

2 个答案:

答案 0 :(得分:2)

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

if($result22){

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

此外:

Please, don't use mysql_* functions in new code。它们不再被维护,deprecation process已经开始了。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

答案 1 :(得分:0)

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

if(mysql_num_rows()>0)
{

}