致命错误:不能使用PDO类型的对象作为数组

时间:2016-06-22 07:56:04

标签: php pdo

这是错误日志

  

致命错误:无法在第13行的/Applications/XAMPP/xamppfiles/htdocs/php/blog/single.php中使用PDO类型的对象

这是13号线

$post = DB\query('SELECT * FROM posts WHERE id = :id LIMIT 1', array('id'   =>  $_GET['id']), $conn [0] ); 

当我尝试获得帖子标题时出现此错误。

<?= $post['title'];?>

完整代码

<?php 

require 'functions.php';

use blog\DB;
// Connect to the DB
$conn = DB\connect($config);

if( !$conn ) die('Problem Connecting to the DB');

// Fetch all the posts

$post = DB\query('SELECT * FROM posts WHERE id = :id LIMIT 1', array('id'   =>  $_GET['id']), $conn [0] ); 
// Filter throgh and display in the view
$view_path = 'views/single.view.php';
include 'views/layout.php';

1 个答案:

答案 0 :(得分:0)

而不是$conn[0],请尝试使用$conn

对于未来的问题,请始终记住您可以在php中输出变量的数据类型,内容和结构。

  1. 使用以下内容以人类可读的格式输出内容。

    echo "<pre>";
    print_r($variable);
    echo "</pre>";
    die();
    
  2. 使用以下内容输出包含数据类型和额外信息的内容

    echo "<pre>";
    var_dump($this);
    echo "</pre>";
    die();
    
  3. 记住gettype()等功能
  4. 同样基于您的进一步评论,我建议您先购买一本书或该语言的在线课程。

    关于您的下一个错误,请记住在php中,需要先定义变量,然后才能调用/使用它。

    所以在线上,您关注的是$post['title'];,请记住首先确保该变量已定义具有 index你打算打电话。还可以使用上面的代码片段进行验证,如果未设置索引,则应编写处理代码。

    类似......

    if(isset($post) && !empty($post) && isset($post['title'])) {
    ....