Php FETCH_类的PDO错误:一般错误:无法调用类构造函数
我真的很困惑,我在所有数据库驱动的项目中都使用了这种方法和几乎完全相同的代码。由于某种原因,这次不起作用了 当我尝试用数据库结果填充对象时,出现以下错误:Php FETCH_类的PDO错误:一般错误:无法调用类构造函数,php,sql-server,class,oop,pdo,Php,Sql Server,Class,Oop,Pdo,我真的很困惑,我在所有数据库驱动的项目中都使用了这种方法和几乎完全相同的代码。由于某种原因,这次不起作用了 当我尝试用数据库结果填充对象时,出现以下错误: Warning: PDOStatement::fetchAll() [pdostatement.fetchall]: SQLSTATE[HY000]: General error: could not call class constructor in D:\vhosts\hoet.co.uk\httpdocs\mobile\classes\
Warning: PDOStatement::fetchAll() [pdostatement.fetchall]: SQLSTATE[HY000]: General error: could not call class constructor in D:\vhosts\hoet.co.uk\httpdocs\mobile\classes\Pages.php on line 67
问题是,如果我从数据库中得到一条记录,它就可以正常工作
以下是单行和所有行的代码:
// Get a page
public static function get($search, $by = "id") {
$db = new Data;
$sql = $db->query("
SELECT *
FROM pages
WHERE $by = :search
");
$sql->bindParam(":search", $search);
$sql->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE,'Pages');
$sql->execute();
return $sql->fetchAll();
}
// Get all pages
public static function getAll($order = "title ASC") {
$db = new Data;
$sql = $db->query("
SELECT *
FROM pages
ORDER BY $order
");
//$sql->bindParam(":id", $id);
$sql->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE,'Pages');
$sql->execute();
return $sql->fetchAll();
} // This is line 67 in my file
我还在类中为每个数据库列设置了私有变量
这个项目唯一的区别是它是一个MS数据库,使用PDO mssql驱动程序而不是普通的MySQL。听起来像个bug
我会尝试在当时获得一行,调整到:
public static function getAll($order = "title ASC") {
$db = new Data;
$sql = $db->query("
SELECT *
FROM pages
ORDER BY $order
");
$sql->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE,'Pages');
$sql->execute();
// get one row at the time
$data = array();
while($row = $sql->fetch()){
array_push($data, $row);
}
return $data;
}
好的,看来如果我把被拉的行数限制在25以下,它就可以工作了。这似乎是一个荒谬的限制!既然您使用了查询,您还需要再次执行吗?您是否尝试将vars设置为public,$db->query是数据类的一个函数,它基本上是一个函数。我知道现在的问题是什么,mssql驱动程序不允许一次返回超过24行,我不知道为什么,也不知道如何修复它!这还会将结果推送到我的类对象吗?这将构建相同的数组,一行一行地获取数据,但仍然不适用于我。我认为mssql PDO驱动程序已经不存在了,对吗?为什么你说当你获取的行数少于25行时它可以工作,而当你使用while时却不行?一个不是少于25吗?您可能必须明确指定fetchmode->fetchPDO::fetch_类