【发布时间】:2012-06-18 19:31:39
【问题描述】:
我刚刚开始使用 PDO 来摆脱 mysqli,但遇到了问题。我正在学习教程,我想从数据库中返回一个数组,但出现以下错误:
致命错误:在第 27 行对 C:\xampp\htdocs\phptuts\crud\core\managedb.class.php 中的非对象调用成员函数 rowCount()
这是我的 managedb.php 类:
<?php
class ManageDatabase
{
public $link;
function __construct()
{
include_once('database.class.php');
$conn = new database;
$this->link = $conn->connect();
return $this->link;
}
function getData($table_name, $id=null)
{
if(isset($id))
{
$query = $this->link->query("SELECT * FROM $table_name WHERE id = '$id' ORDER BY id ASC");
}
else
{
$query = $this->link->query("SELECT * FROM $table_name ORDER BY id ASC");
}
$rowCount = $query->rowCount();
if($rowCount >= 1)
{
$result = $query->fetchAll();
}
else
{
$result = 0;
}
return $result;
}
}
那么我只是简单地使用下面的代码来尝试得到响应:
<?php
include_once('../core/managedb.class.php');
$init = new ManageDatabase;
$table_name = 'users';
$data = $init->getData($table_name);
print_r($data);
这是我收到错误的时候,有什么想法吗?
【问题讨论】:
-
如果您传递参数
$id,您应该使用准备好的查询 -
好的,我将 SQL 直接放入 phpmyadmin 并得到了我预期的结果,但是当直接在脚本中执行 var_dump 时它返回了一个 bool(false),所以我猜我的$rowCount 函数我就是不知道是什么。