所以我整天都在处理不同的PHP脚本,所以我不知道这只是我的眼睛,我需要休息或者什么:但我写了一行连接到MySQL数据库,并检查用户名是否已经存在。但是我收到的错误消息当然不是很有帮助(即使在搜索时它们似乎不适用于我正在处理的内容,或者只是不显示任何内容。
错误一(在我放入或死之前(mysqli_error($ myCon)):
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/icangame/public_html/dev/php/userRegister.php on line 40
错误二(我输入或死亡声明后):
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== `user`' at line 1
这个苹果的代码(如果你想要发布更多,这是一个大文件。):
$checktherow = mysqli_query($myCon, "SELECT * FROM users WHERE `username` == `$realUsername`") or die(mysqli_error($myCon));
if (mysqli_num_rows($checktherow) == 0)
{
mysqli_query($myCon, "INSERT INTO users (username, password, email)
VALUES ('$realUsername', '$realPassword', '$email')") or
die(mysqli_error($myCon));
}
谢谢,蒂姆
答案 0 :(得分:0)
查询失败,因此它将$ checktherow赋值为“false”。当你运行mysqli_num_rows($ checktherow)时,它得到一个布尔值而不是它期望的mysqli_result对象
问题是你的查询,你有“SELECT * FROM users WHERE username
== $realUsername
”,但它应该是“SELECT * FROM users WHERE username
= {{1 }}“
答案 1 :(得分:0)
当你想要一些特定的数据库时,不要使用double equals,当你想要比较值时使用它:
将此更改为:
username
== $realUsername
此:
username
= $realUsername
答案 2 :(得分:0)
$checktherow = mysqli_query($myCon, "SELECT * FROM users WHERE `username` == `$realUsername`") or die(mysqli_error($myCon));
应该是
$checktherow = mysqli_query($myCon, "SELECT * FROM users WHERE `username` ='".$realUsername."'") or die(mysqli_error($myCon));
答案 3 :(得分:0)
我认为你需要休息一下
替换
$checktherow = mysqli_query($myCon, "SELECT * FROM users WHERE `username` == `$realUsername`") or die(mysqli_error($myCon));
WITH
$checktherow = mysqli_query($myCon, "SELECT * FROM users WHERE `username` = `{$realUsername}`") or die(mysqli_error($myCon));
在您的查询中注意==
这是mysql语法错误,因此$checktherow
返回false
答案 4 :(得分:0)
在第一行中添加一个=
符号,而不是==
。像这样
$checktherow = mysqli_query($myCon, "SELECT * FROM users WHERE
的用户名=
$ realUsername ") or die(mysqli_error($myCon));