2016-06-22 4 views
0

Здесь ошибка входаФатальная ошибка: Не удается использовать объект типа PDO как массив

Fatal error: Cannot use object of type PDO as array in /Applications/XAMPP/xamppfiles/htdocs/php/blog/single.php on line 13

Вот 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'; 
+0

Вы можете разместить свой класс DB? Кроме того, вы неправильно используете методы класса. – Bas

+0

change $ conn [0] to $ conn –

+0

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

ответ

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() и т.д.

Кроме того, на ваших дальнейших комментариев на основе, я бы рекомендуем сначала взять книгу или онлайн-курс на этом языке.

О вашей следующей ошибке, помните, что в php переменная должна быть определена, прежде чем вы сможете ее использовать/использовать.

Так на линии, где уход вызывающей $post['title']; помните, сначала убедитесь, что эта переменная определяется и имеетindex, что вы собираетесь позвонить. Также используйте приведенные выше фрагменты, чтобы проверить, и вы должны писать код обработки, если этот индекс не установлен.

что-то вроде ..

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

Спасибо всем моим друзьям. теперь его исправлено. –

Смежные вопросы