1

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

试图在第 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;
                }
            }
        }
    ?>

我该如何解决这个问题?

4

3 回答 3

4
SELECT FROM accounts

可能是无效的。你可能想要SELECT * FROMSELECT 1 FROM

于 2012-06-23T17:27:51.040 回答
4

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

  • 检查您的数据。包含哪些数据$result?检查var_dump
  • 你的查询正确吗?打印查询以查看它。将确切的查询复制并粘贴到 SQL 提示符中以查看它是否正常工作。
于 2012-06-23T17:30:55.860 回答
2

您没有检查查询中的错误。如果发生错误,$result将是假的,情况正是如此。您的查询中有语法错误。

于 2012-06-23T17:28:45.477 回答