繁体   English   中英

致命错误:无法将PDO类型的对象用作数组

[英]Fatal error: Cannot use object of type PDO as array

这是错误日志

致命错误:无法在第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';

尝试使用$conn代替$conn[0]

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

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

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

     echo "<pre>"; var_dump($this); echo "</pre>"; die(); 
  3. 记住诸如gettype()类的函数。

另外,根据您的进一步评论,我建议您首先阅读一本书或该语言的在线课程。

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

因此,在网上,您需要在其中调用$post['title']; 请记住首先确保已定义该变量并具有您要调用的index 还要使用上面的代码片段进行验证,如果未设置该索引,则应该编写处理代码。

就像是..

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM