刚刚下载并尝试使用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
我做错了什么以及如何在标准代码上出现受保护的属性错误?
答案 0 :(得分:2)
试试这个:
$db->adapter()->query('SELECT xxxx FROM xxxxx');
我刚刚关闭了这个文档,所以我不知道它是否会起作用。文档声明DB类$adapter
受保护,但adapter()
函数返回适配器。
答案 1 :(得分:1)
这是文档中的拼写错误。为此道歉。它已得到纠正。正确的用法就像建议的那样:
$db->adapter()->query('SELECT xxxx FROM xxxxx');
这是返回受保护属性$ adapter的方法。