我有php脚本的问题。 问题是,它显示我,我正在调用一个非对象的函数,但该对象存在。调用一个非对象,实际上是一个对象
脚本是:
if ($dcdt_sql['pdo']) {
try {
$dbh = new PDO(
'mysql:host='.$dcdt_sql[0].';dbname='.$dcdt_sql[3],
$dcdt_sql[1],
$dcdt_sql[2],
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_PERSISTENT => false
)
);
}
catch (PDOException $e) { die("PDO ERR: [".$e->getMessage()."]"); }
}
else { $dbh = DBManager::connect(); }
switch ($mode) {
case 'fetch_assoc':
if ($dcdt_sql['pdo']) {
try {
$sth = $dbh->prepare($sqlQuery)->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC); // PROBLEM IS IN THIS LiNE
$return = $result;
}
catch (PDOException $e) { die("PDO ERR: [".$e->getMessage()."]"); }
}
else {
$result = $dbh->query($sqlQuery);
if (!is_object($result)) { die('DEBUG: Query error: ['.$sqlQuery.'] returned: ['.print_r($result,1).']'); }//DEBUG
while ($row = $result->fetch_assoc()) {
$list[] = $row;
}
$return = $list;
}
break;
问题出在哪里我评论它,但它应该是一个对象卫生组织函数被调用。 所以我不明白。
错误,我得到:
致命错误:调用非对象/usr/local/www/apache22/data/centrs/dc_elec/report.lib.inc上一个成员函数使用fetchall() 102行
谢谢你提前。
http://sg.php.net/manual/en/pdostatement.execute.php'execute()'返回一个布尔值,以便错误消息是正确的。 –
这就是你得到的方法链接。不要这样做,否则你将无法轻松发现这样的错误。 – PeeHaa
口译员不说谎 – Gordon