[英]PHP to mySQL check if user exists
I have a script that updates/creates user from an iOS device. 我有一个脚本,可以从iOS设备更新/创建用户。 Now i want to have the script also check if the user already exists in the database.
现在我想让脚本还检查用户是否已经存在于数据库中。 I am going to restrict this to username for now, so no more than ONE unique username may exist.
我现在将其限制为用户名,因此唯一的用户名可能不超过一个。 I have an if-statement in my PHP but i cannot get it to work - help please :).
我的PHP中有一个if语句,但是我无法使它正常工作-请帮助:)。
<?php
header('Content-type: application/json');
if($_POST) {
$username = $_POST['username'];
$password = $_POST['password'];
if($username && $password) {
$db_name = 'dbname';
$db_user = 'dbuser';
$db_password = 'dbpass';
$server_url = 'localhost';
$mysqli = new mysqli('localhost', $db_user, $db_password, $db_name);
$userexists = mysql_query("SELECT * FROM users WHERE username='$username'");
/* check connection */
if (mysqli_connect_errno()) {
error_log("Connect failed: " . mysqli_connect_error());
echo '{"success":0,"error_message":"' . mysqli_connect_error() . '"}';
}
if(mysql_num_rows($userexists) != 0) {
echo '{"success":0,"error_message":"Username Exist."}';
}
else {
$stmt = $mysqli->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
$password = md5($password);
$stmt->bind_param('sss', $username, $password, $email);
/* execute prepared statement */
$stmt->execute();
if ($stmt->error) {error_log("Error: " . $stmt->error); }
$success = $stmt->affected_rows;
/* close statement and connection */
$stmt->close();
/* close connection */
$mysqli->close();
error_log("Success: $success");
if ($success > 0) {
error_log("User '$username' created.");
echo '{"success":1}';
}
else {
echo '{"success":0,"error_message":"Username Exist."}';
}
}
}
else {
echo '{"success":0,"error_message":"Passwords does not match."}';
}
}
else {
echo '{"success":0,"error_message":"Invalid Username."}';
}
}
else {
echo '{"success":0,"error_message":"Invalid Data."}';
}
?>
You could SELECT
the table before trying to insert username
. 您可以在尝试插入
username
之前先SELECT
表。 If it already exists (= you have a result) you dont simply insert. 如果已经存在(=您有结果),则不要简单地插入。
Better yet, use ON DUPLICATE IGNORE
or something like that. 更好的是,使用
ON DUPLICATE IGNORE
或类似的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.