无法访问受保护属性的POPPHP标准示例

时间:2012-11-24 17:36:25

标签: php mysql pop

刚刚下载并尝试使用POPPHP。所有内容都已下载并设置完毕。然后从这里尝试数据库示例代码:http://www.popphp.org/documentation/manual/db

我收到以下错误消息: 致命错误:无法在第21行的/var/xxx/xxx/xxxxx/public_html/example_com/test.php中访问受保护的属性Pop \ Db \ Db :: $ adapter

代码:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once 'bootstrap.php';

use Pop\Db\Db;

// Define DB credentials
$creds = array(
    'database' => 'example_com',
    'host'     => 'localhost',
    'username' => 'xxxx',
    'password' => 'xxxxx'
);

// Create DB object
$db = Db::factory('Mysqli', $creds);

// Perform the query
$db->adapter->query('SELECT xxxx FROM xxxxx');

// Fetch the results
while (($row = $db->adapter->fetch()) != false) {
    print_r($row);
}

?>

我有以下设置: PHP版本5.3.10 MySQL版本:5.5.24-0ubuntu0.12.04.1

我做错了什么以及如何在标准代码上出现受保护的属性错误?

2 个答案:

答案 0 :(得分:2)

试试这个:

$db->adapter()->query('SELECT xxxx FROM xxxxx');

我刚刚关闭了这个文档,所以我不知道它是否会起作用。文档声明DB类$adapter受保护,但adapter()函数返回适配器。

答案 1 :(得分:1)

这是文档中的拼写错误。为此道歉。它已得到纠正。正确的用法就像建议的那样:

$db->adapter()->query('SELECT xxxx FROM xxxxx');

这是返回受保护属性$ adapter的方法。