私はmysqlデータベースにユニークな電子メールを追加するPHPスクリプトを持っています。 PHPスクリプトは次のとおりです。データベース内の複数のエントリ
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=ourdatabase', 'shyam', 'mypassword');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e) {
exit();
}
try {
$email=$_POST['email'];
$sql = "SELECT username FROM users WHERE email LIKE '$email'";
$result = $pdo->query($sql);
} catch (PDOException $e) {
exit();
}
if ($row = $result->fetch()) {
$resturant[] = array('status' => "userexists");
echo json_encode($resturant);
exit();
} else {
try {
$sql = 'INSERT INTO users SET
email = :mailaddress,
password = :password,
tagline = :tagline';
$s = $pdo->prepare($sql);
$s->bindValue(':mailaddress', $_POST['email']);
$s->bindValue(':password', $_POST['password']);
$s->bindValue(':tagline', $_POST['tagline']);
$s->execute();
exit();
} catch (PDOException $e) {
exit();
}
}
?>
私は迅速ファイルからこのスクリプトにアクセスしています:
@IBAction func registerClick(sender: AnyObject) {
let url:NSURL = NSURL(string: url_to_request)!
let session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData
let paramString = "email=\(email.text!) & password=\(password.text!) & tagline=\(tagline.text!)"
request.HTTPBody = paramString.dataUsingEncoding(NSUTF8StringEncoding)
for index in 1...10{
let task = session.dataTaskWithRequest (request, completionHandler: {data, response, error -> Void in })
task.resume()
}
}
しかし、複数のエントリがデータベースに追加されます。
databse画面が
ループを実行して、多くのユーザーが登録しようとしているかどうかを確認しました同時に同じメールを送信しています。 このPHPスクリプトのインスタンスを1つだけ実行し、他のインスタンスをキューに入れる方法を教えてください。 Plsは私がここにこだわっているのを助けます。
最初に 'COUNT()'文を実行しようとしましたか?また、あなたはPDOを使用していて、注入に対する安全保護のためのバインドを使用していません。 ""ユーザー名からSELECTメールを送信するユーザは$ email ""; – Rasclatt
ありがとうございました... PHPファイル –
に組み込む方法count()here –