お世話になっております。
MySQLのDBにINSERTしようとして
もし値があればUPDATEするという処理をphpで書いております。
sql
1CREATE TABLE users ( 2 users_id int(8) NOT NULL AUTO_INCREMENT, 3 email varchar(255) NOT NULL, 4 password varchar(255) NOT NULL, 5 entryday DATETIME, 6 primary key(users_id) 7);
php
1 $passhash=password_hash($_POST["pass"],PASSWORD_DEFAULT); 2 //↓もうメールアドレスが登録していたらパスワードのみ変更のフラグ 3 $touroku = 0; 4 $sql = "SELECT * FROM users WHERE email='".$_POST["mail"]."'"; 5 if ($result = $mysqli->query($sql)) { 6 while ($row = $result->fetch_assoc()) { 7 $touroku=1; 8 } 9 $result->close(); 10 }else{ 11 echo "sqlerror:".$sql."<br>"; 12 } 13 14 if($touroku){ 15 $sql = "UPDATE users SET password='".$passhash."' WHERE email='".$_POST["mail"]."'"; 16 $result = $mysqli->query( $sql ); 17 $result->close(); 18 }else{ 19 $sql= "INSERT INTO users(email,password,entryday) VALUES ( '".$_POST["mail"]."' , '".$passhash."' , NOW() )"; 20 $result = $mysqli->query( $sql); 21 $result->close(); 22 } 23
のように書いていますが
なんかとんでもなく不恰好なので相談させて下さい。
登録しようとしているものがあればUPDATEなければINSERTとのような命令ないのでしょうか?
お忙しい中申し訳ございませんが以上 お問い合わせ致します。
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。