Надо обязательно объяснять, что это костыль, для тех у кого совсем адово спагетти и он реально не знает какие файлы где инклюдятся.
В мимимально организованном приложении никакие _once не нужны.
А если понадобились, то это сигнал, вот как в этом вопросе, "govnocode warning".
Adik Izat, ты не объяснил, а только запутал.
Если ты что-то забыл, или никогда не знал, то не надо пытаться объяснять это другим. Лучше молча постоять в сторонке.
Оправдания твои никому тут не интересны.
Или удали свой неграмотный ответ, или хотя бы исправь, на тот код который я написал.
Тебе надо научиться пользоваться подготовленными выражениями самому. И в целом PDO. Вместо fetchAll(PDO::FETCH_ASSOC)[0] есть специальная функция fetch(PDO::FETCH_ASSOC). Которая не вызовет ошибку, если запрос не вернул данных.
Исправь свой ответ
$id = {id товара};
$statement = $pdo->prepare("SELECT * FROM goods WHERE id = ?");
$statement->execute([$id]);
$good = $statement->fetch(PDO::FETCH_ASSOC);
Да, разумеется.
Главная причина, по которой мы используем объекты - это не чтобы выглядеть круто, а чтобы не писать один и тот же код по 800 раз.
поэтому код выполнения запроса мы пишем в функцию, и потом все время используем её в других функциях.