我有一個PHP腳本,它將一個唯一的電子郵件添加到mysql數據庫。 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腳本的一個實例並讓其他人排隊。當我被困在這裏時請幫助。
您是否曾嘗試先運行'COUNT()'語句?你也正在使用PDO,你沒有使用綁定到安全防範注入''SELECT用戶名FROM用戶WHERE電子郵件LIKE'$ email'「;' – Rasclatt
感謝指出......將它包含在php文件中 –
我該如何合併count()here –