在我添加代码来检查数据库中是否已经存在该用户之前,脚本在添加新用户时工作得很好,这是我无法理解为什么它不工作的部分。这是一个只测试android应用程序的环境,所以我更喜欢最简单的版本。
<?php
require_once 'connect_db.php';
$conn = new mysqli($hostname, $admin_name, $admin_pwd, $database);
if($conn->connect_error) {
die($conn->connect_error);
}
if(isset($_REQUEST["username"]) && isset($_REQUEST["email"]) && isset($_REQUEST["password"]) && isset($_REQUEST["user_type"])) {
echo "Welcome ". $_REQUEST['username']. "<br />";
$name = $_REQUEST['username'];
$email = $_REQUEST['email'];
$pwd = $_REQUEST['password'];
$user_type = $_REQUEST['user_type'];
// first check if user already exists
$query = "SELECT 1 FROM users WHERE `EMAIL` = '$email'";
$result = $conn->query($query);
if (!$result) die("Database access failed: " . $conn->error);
if (mysqli_num_rows($result) > 0) {
echo "Error inserting user into database. User already exists";
} else {
// then do insert new user
$query_insert_user = "INSERT INTO users (`NAME`, `EMAIL`, `PWD`, `USER_TYPE`) VALUES ('$name', '$email', '$pwd', '$user_type')";
if ($conn->query($query_insert_user) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $query_insert_user . "<br>" . $conn->error;
}
}
$result->close();
$conn->close();
} else {
echo "Error inserting user into database. Missing user parameters";
}
?>
3条答案
按热度按时间oxcyiej71#
一些来自朋友的示例代码就行了。我改为:
yvgpqqbh2#
我无法测试它,但乍一看我建议:
将查询更改为jesper的建议(虽然“”应该扩展变量,但是…)
可能是因为
mysqli_num_rows($result)
什么时候$result->num_rows
应该用于oop吗?请看php手册mysqli-result.num-rows祝你好运。
tktrz96b3#
换条线
$query=“从用户中选择1,其中
EMAIL
='$email'';到
$query=“从用户中选择1,其中
EMAIL
='“$电子邮件。”'“;