use*_*094 1 php database pdo fetch fatal-error
我的错误:
( ! ) Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\PDO\index.php on line 13
我的代码:
<?php
$config['db'] = array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'learnpdo'
);
$db = new PDO('mysql:host='.$config['db']['host'].';dbname'.$config['db']['dbname'], $config['db']['username'], $config['db']['password']);
$query = $db->query("SELECT articles . title FROM articles");
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo $row['title'];
}
Run Code Online (Sandbox Code Playgroud)
我知道有很多这样的问题,但没有一个答案似乎有效.
谢谢
编辑:
由于以下所有人,以上是固定的.:)现在我收到另一个错误:
Notice: Undefined index: id in C:\wamp\www\PDO\index.php on line 7
这是我的数据库:
这是我的代码:
$db = new PDO('mysql:host=localhost;dbname=learnpdo;charset=UTF-8', 'root', '');
$query = $db->query("SELECT `articles`.`title` FROM `articles`");
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo $row['id'];
}
Run Code Online (Sandbox Code Playgroud)
PDO::query()false如果查询失败,则返回(显然是非对象).这就是你的问题.您的查询有错误.
我建议您在PDO中设置错误模式.
$db->setAttribute(PDO::ATTR_ERRMODE, PDO:ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)
然后捕获错误以查看您的查询有什么问题.
存在的不同错误模式是PDO::ERRMODE_SILENT,PDO::ERRMODE_WARNING和PDO:ERRMODE_EXCEPTION.您可以在PDO的PHP手册中阅读它们.知道如何在编写SQL时进行调试很重要,而且不必问这些问题.
如果要使用它,您必须选择id列.
SELECT * FROM articles
Run Code Online (Sandbox Code Playgroud)
要么
SELECT id, title FROM articles
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19036 次 |
| 最近记录: |