php - 试图阻止用户注册重复名称但未捕获错误
问题描述
当用户在注册期间输入现有用户名时,我试图显示错误。但是,我的捕获被绕过了,它只是被转发到第二个 sql 查询,因为用户名是主键,所以它失败了。
$sqlx = "SELECT username FROM TBLUSERS WHERE username='".$username."'";
if( mysqli_num_rows(mysqli_query($conn, $sqlx) > 0)){
echo "Username already exists, choose a different one";
}
else {
$sql = "INSERT INTO TBLUSERS (USERNAME, PASSWORD, FULLNAME,
street_number, street_name, suburb, state, postcode, EMAIL,
children_number, Children_name, Children_class, creditcard, exp_month,
exp_year) VALUES ('$username', '$password', '$f_name','$street_no',
'$street_name',
'$suburb','$state','$postcode','$email','$no_child','$s_name', '$s_class',
'$credit', '$expiryMonth','$expiryYear')";
if (mysqli_query($conn, $sql) === TRUE) {
echo "Thank you for registration";
mail($to, $subject, $message, $headers);
echo "<p>The email has been sent to</p>";
echo "<p>$to</p>";
} else {
echo "Error: Query did not succeed";
}
}
因此,当我使用现有用户名注册时,我希望“用户名已经存在,请选择其他用户名”而不是“查询未成功:。
解决方案
错误在这一行的括号中:
if( mysqli_num_rows(mysqli_query($conn, $sqlx) > 0)){
将其更改为:
if( mysqli_num_rows(mysqli_query($conn, $sqlx)) > 0){
推荐阅读
- r - NA:检测到:用零填充 NA
- javascript - 将本机 HTML 粘贴到浏览器剪贴板
- amazon-web-services - 在云市场(AWS / GCP / Azure)上销售 SaaS 产品
- java - 我正在尝试在 Java 中渲染一个蓝色方块,但我遇到了 IllegalStateException 错误。有人能帮我吗?
- html - 使用 jQuery 显示/隐藏表单
- python - SqlAlchemy 计数表关系
- python - 在 Python 3.8 中运行 Crontab 时出现 SyntaxError 无效语法
- php - 为什么PHP if语句在查询中不起作用
- python - 如何将动态 url 传递给另一个 url
- python - 尝试自动输入 python 提示