【问题标题】:Fatal error: Cannot use object of type PDO as array致命错误:不能将 PDO 类型的对象用作数组
【发布时间】:2016-06-22 16:32:47
【问题描述】:

这是错误日志

致命错误:无法在第 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[0] 更改为 $conn
  • $post = DB\query('SELECT * FROM posts WHERE id = :id LIMIT 1', array('id' => $_GET['id']), $conn );
  • 现在出现此错误注意:未定义索引:第 1 行 /Applications/XAMPP/xamppfiles/htdocs/php/blog/views/single.view.php 中的标题 = $post['title '];?>

标签: php pdo


【解决方案1】:

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

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

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

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

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

另外,根据您进一步的 cmet,我建议您首先获取一本书或该语言的在线课程。

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

因此,在您关心调用$post['title']; 的地方,请记住首先确保该变量已定义并且具有您打算调用的index .也可以使用上面的 sn-ps 来验证,如果没有设置索引,你应该编写处理代码。

类似..

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

【讨论】:

  • 谢谢我所有的朋友。现在它已修复。
猜你喜欢
  • 2013-07-05
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多