【发布时间】:2019-06-26 16:36:33
【问题描述】:
$sql = $conn->prepare("SELECT username, email FROM users WHERE username=? OR email = ?");
$sql->bind_param('ss', $uname, $email);
$sql->execute();
$result = $sql->get_result();
$row = $result->fetch_array(MYSQLI_ASSOC);
if ($row['username'] == $uname) {
echo "Username not availabe try different";
} elseif ($row['email'] == $email) {
echo "email is already taken diiferent";
} else {
$stmt = $conn->prepare("INSERT INTO users (username, email, pass, created) VALUES (?, ?, ?, ?)");
$stmt->bind_param('ssss', $username, $email, $pass, $created);
if ($stmt->execute()) {
echo "Registrated sucessfully. Login Now!";
} else {
echo "Something went wrong. Please try again";
}
}
此代码未运行。我不知道为什么。 如果我正在获取单行,那么它可以工作,但对于多行,它就不能工作。
这里我想使用准备好的语句验证数据库中是否已经存在用户名和电子邮件。
【问题讨论】:
-
试试把 (!$stmt) { mysqli_error($conn);在某些地方查看代码中断或任何错误消息。你是不是搞错了?
-
在 chrome 中检查时显示此错误:jquery-3.3.1.min.js:2 POST localhost//action.php 500 (Internal Server Error) send @ jquery-3.3.1.min.js :2 ajax @ jquery-3.3.1.min.js:2 (匿名) @ login.php:208 dispatch @ jquery-3.3.1.min.js:2 y.handle @ jquery-3.3.1.min.js :2
-
我知道这不是 ajax 或 jquery 的错误,因为我已经对其进行了调试,一切都很好,就像数据来自表单一样,它也可以获取单行但不能用于多行.在这里,我想使用准备好的语句验证数据库中是否已经存在用户名和电子邮件。谢谢
标签: php mysqli prepared-statement mysqli-fetch-array