: Call to a member function rowCount() on a non-object in C:\wamp\www\prjy\classes\user.php on line 34
第 29-32 行
$this->sth = $this->dbh->prepare("SELECT id, userlevel FROM users WHERE username = ? AND password = ?");
$this->sth->bindParam(1, $username);
$this->sth->bindParam(2, $password);
$this->data = $this->sth->execute();
第 34 行
if ($this->data->rowCount() > 0)
我想将结果对象保存在另一个变量中,这样我就可以执行另一个查询,并根据结果返回正确的内容...我不能将结果 (execute()) 保存在变量中吗像上面那样?我该如何以其他方式解决它?
最佳答案
PDOStatement::rowCount()
返回受相应 PDOStatement 对象执行的最后一个 DELETE、INSERT 或 UPDATE 语句影响的行数。
对于大多数数据库,PDOStatement::rowCount()
不会返回受影响的行数
通过 SELECT
语句。相反,
使用 PDO::query()
发出 SELECT COUNT(*)
语句,其谓词与您想要的 SELECT 语句相同,
然后使用 PDOStatement::fetchColumn() 检索将返回的行数。
<强> Reference
关于php pdo保存查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7619340/