fetchall()在Codeigniter 3中不起作用配置的pdo驱动程序
我无法在Codeigniter3中使用PDO驱动程序获取结果。fetchall()在Codeigniter 3中不起作用配置的pdo驱动程序
中的config/database.php中配置PDO驱动程序如下
$db['default'] = array(
'dsn' => 'mysql:host=localhost;dbname=my_db',
'hostname' => '',
'username' => 'root',
'password' => 'root',
...
$autoload['libraries'] = array('database','session');
...
$query =
"SELECT * FROM abc LIMIT 10";
var_dump($this->db);
$q=$this->db->query($query)->fetchAll();
但结果
An uncaught Exception was encountered
Type: Error
Message: Call to undefined method CI_DB_pdo_result::fetchAll()
但是,如果我通过创建PDO对象尝试直接我就可以获取数据
$dsn="mysql:host=localhost;dbname=my_db";
$username = "root";
$password = "root";
try
{
$db = new PDO($dsn,$username,$password);
echo "connected";
$query =
"SELECT * FROM abc ";
$q=$db->query($query)->fetchAll();
echo "<pre>";
var_dump($q);
echo "</pre>";
}
catch (PDOException $e)
{
}
我应该做些什么来解决PDO应用/ database.php中配置?
代码数据库函数和查询生成器类没有函数fetchAll
。任何时候你使用$this->db->...
你正在使用数据库类。我推荐学习documentation。
是的,如果您可以直接创建和使用PDO对象。
Thankyou的回复。如果我想直接使用PDO,我应该放置$ db =新的PDO($ dsn,$ username,$ password);在每一个模特班? 。那不好吗 ?我是一个新手。 – ios
恕我直言,你应该总是使用查询生成器,无论什么 – sintakonte
@sintakonte我可以用Query Builder定义准备好的语句吗?或者我不必使用准备好的声明,如果我设置pdodriver? – ios
将''dsn'=>'mysql:host = localhost; dbname = my_db','改为''pgsql:host = localhost; dbname = my_db'',并检查 – Saty
@Saty Thankyou的回复。我试过你的建议,但仍然是相同的错误 – ios
你设置了''dbdriver'=>'pdo',' – Saty