Ошибка в php Fatal error:

191
11 апреля 2018, 08:07

Есть вот такой код:

<?php
    $title='HistorylifeNSK Post';
    $back="index.php";
    $logotext= "HistorylifeNSK Post";
    $home= "../index.php";
    require "header.php";

    function get_post_by_id($id) {          //Здесь я создал функцию которая получает статью по ее id.
    global $db;
    $posts = $db->query("SELECT * FROM posts WHERE id = $id");
    foreach ($posts as $post) {
    return $post;
    }
    }
?>
<?php 
    $post = get_post_by_id($_GET['id']);
?>

И он выдает ошибку: Fatal error: Uncaught Error: Call to a member function query() on null in C:\OSPanel\domains\histrylifensk.rus\fullPost.php:12 Stack trace: #0 C:\OSPanel\domains\histrylifensk.rus\fullPost.php(20): get_post_by_id(NULL) #1 {main} thrown in C:\OSPanel\domains\histrylifensk.rus\fullPost.php on line 12

12 строкой является строка: $posts = $db->query("SELECT * FROM posts WHERE id = $id");

Помогите пажалуйста... Заранее спасибо.

Answer 1

Ваша ошибка означает, что вы не передаете в функцию get_post_by_id параметр $id (передается NULL), также глобальная переменная $db у вас не была объявлена ранее, соответственно, она также является NULL.

Вам нужно провести отладку кода в тех местах, где происходит объявление $db, а также вызов функции get_post_by_id и передача параметра $id на предмет ошибок. Вероятно, что у вас есть ошибка при подключении зависимых файлов, в результате которой, участок кода, где происходит объявление, на самом деле не подключается, вызывая подобные ошибки.

READ ALSO
Как распарсить API Github на PHP?

Как распарсить API Github на PHP?

Всем приветПытаюсь вывести на сайт список релизов репозитория через API Github

212
Как связывать пользователей с базой по технологии WebSocket

Как связывать пользователей с базой по технологии WebSocket

Никак не могу понять следующие моменты в технологии WebSocket: 1По сути провайдеры если не ошибаюсь используют динамические ip, тоесть происходит...

154
Убрать вложенность массива php

Убрать вложенность массива php

Работая с VK api получаю нужные мне массивы в цикле for и вбиваю их в arr[] (чтобы вывести за цикл все значения полученных массивов)

187
Автоматичекая запись в MySql по запросу с api

Автоматичекая запись в MySql по запросу с api

Есть такой вопросКак сделать что бы автоматически записывались поля в MySql, если данные с api изменились? (backend на php, frontend Vue

194