テーブルにレコードが存在するかどうかを確認しようとしています。ユーザーをリダイレクトしたい場合は、レコードを挿入したいです。
私は次のことを持っています。私の唯一の問題は、テーブルに同じレコードを何度も挿入することです。そのため、最初のクエリが機能していないようです。
$query = "SELECT * FROM `users` WHERE oauth_uid=? and oauth_provider=?";
$stmt = $DBH->prepare($query);
$stmt->execute($uid, $oauth_provider);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
# silent
}
if (!empty($result)) {
# User is already present - Redirect them
echo 'This will redir';
} else {
$sql = "INSERT INTO `users` (oauth_provider, oauth_uid, username, email) VALUES (:oauth_provider,:uid,:username,:email)";
$q = $DBH->prepare($sql);
$q->execute(array(':oauth_provider'=>$oauth_provider,':uid'=>$uid,':username'=>$username,':email'=>$email));
echo 'done';
}
完了
<?php
require 'dbconfig.php';
class User {
function checkUser($uid, $oauth_provider, $username, $email, $twitter_otoken, $twitter_otoken_secret)
{
global $DBH;
$query = "SELECT * FROM `users` WHERE oauth_uid=? and oauth_provider=?";
$stmt = $DBH->prepare($query);
$stmt->execute($uid, $oauth_provider);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
# silent
}
if (!empty($row)) {
# User is already present - Redirect them
echo 'This will redir';
} else {
$sql = "INSERT INTO `users` (oauth_provider, oauth_uid, username, email) VALUES (:oauth_provider,:uid,:username,:email)";
$q = $DBH->prepare($sql);
$q->execute(array(':oauth_provider'=>$oauth_provider,':uid'=>$uid,':username'=>$username,':email'=>$email));
echo 'done';
}
}
}
?>
古いMYSQLが機能しました
$query = mysql_query("SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'") or die(mysql_error());
$result = mysql_fetch_array($query);
if (!empty($result)) {
# User is already present
echo'user exists';
}