0

重複の可能性:
php - レコードの存在を確認 db - エラー表示

現在、データベースにユーザーを追加しようとしています。ユーザーが存在するかどうかを確認し、IF SO の場合は、いくつかのフィールドを更新するだけです。そうでない場合は、新しいレコードを完全に挿入する必要があります。

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

理由はよくわかりませんが、常に「笑」と出力されます。(別名、ユーザーは存在します。)他のifを完全に無視します。

4

2 に答える 2

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

if($result22){

SQL コードにエラーがない限り、常に解決される結果セットmysql_queryを返しますtrue

また:

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、非推奨プロセスが開始されています。赤いボックスがか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを使用するかを決めるのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-01-12T09:58:37.697 に答える
0

mysql_num_rows最後の結果セットの行数を返す関数を使用することもできます

if(mysql_num_rows()>0)
{

}
于 2013-01-12T11:12:16.253 に答える