语法错误,但我没有看到它? (PHP / MySQLi_Query)

时间:2013-07-11 04:30:32

标签: php mysqli syntax-error

所以我整天都在处理不同的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));  
}

谢谢,蒂姆

5 个答案:

答案 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));