试图获取非对象错误的属性

时间:2012-06-23 17:24:08

标签: php mysqli

我需要获取某个查询返回的行数,但它让我犯了这个错误

  

尝试在第18行的C:\ xampp \ htdocs \ sample \ includes \ CheckUsername.php中获取非对象的属性

这是我的代码:

 <?php
        class Db_CheckUsername{
            protected $_conn;
            protected $_username;
            protected $_errors = array();

            public function __construct($username,$conn){
                $this->_username = $username;
                $this->_conn = $conn;
            }

            public function isUsernameAvailable(){
                $sql = "SELECT ";
                $sql .= "FROM accounts ";
                $sql .= "WHERE username = {$this->_username}";

                $result = $this->_conn->query($sql);
                $numRows = $result->num_rows;

                if($numRows == 0){
                    return true;
                }else{
                    return false;
                }
            }
        }
    ?>

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

SELECT FROM accounts

可能无效。您可能需要SELECT * FROMSELECT 1 FROM

答案 1 :(得分:4)

我不会给你解决方案,因为我认为你需要开发一些基本的故障排除技巧。

  • 检查您的数据。 $result包含哪些数据?请查看var_dump
  • 您的查询是否正确?打印查询以查看它。将确切的查询复制并粘贴到SQL提示符中,以查看它是否正常工作。

答案 2 :(得分:2)

您没有检查查询中的错误。如果发生错误,$result将为false,这正是如此。您的查询中存在语法错误。