Класс mysqli никак не мог содержать атрибут ‘price’ — или это возможно?

#php #mysqli

#php #mysqli

Вопрос:

Это скорее теоретический вопрос. Я пытаюсь создать систему корзины покупок для моего веб-приложения для онлайн-пиццерии, используя пример книжного магазина из книги Люка Уэллинга и Лоры Томсон «Разработка на php и mysql«.

в приведенном ниже коде есть переменная $item, которая является объектом. Похоже, что у этого объекта есть этот атрибут price. Насколько я могу судить, вы отслеживаете этот объект обратно в класс mysqli. Поскольку я использую netbeans, содержащийся mysqli.php файл скрыт. и я не могу найти атрибут price ни в одном другом mysqli.php файл на моем компьютере.

Опять же, я почти уверен, что в классе mysqli нет атрибута price, потому что это вообще не имело бы смысла, но тогда откуда МОГ взяться атрибут?

 if (is_array($bestelling))
    {
        $conn = connect2db();
        foreach ($bestelling as $isbn => $key)
        {
        $query  = "SELECT pizza_price FROM pizzas WHERE Pizza_id = $pizzaId";
        $result = $conn->query($query);   
            if ($result)
            {
                $item = $result->fetch_object();
                $item_price = $item->price;
            }
        }        
    }
  

Ответ №1:

No $item->pizza_price; ссылается на фрагмент данных в строке, который вы получаете из базы данных. Я собираюсь предположить, что в базе данных есть столбец с именем pizza_price . Поэтому $item->pizza_price; будет содержать значения отсюда.

Комментарии:

1. Поскольку запрос, приведенный непосредственно выше, выбирает только столбец pizza_price , я предполагаю, что или $item->price является опечаткой.

2. @veredesmarald Прочитав несколько всплывающих учебных пособий, это точно не было бы сюрпризом :). Также изменил мой ответ.

3. ДА, это именно так. Поскольку в Netbeans атрибут ‘price’ (так, как он вводится в курсе) подсвечивается зеленым, похоже, что это где-то, где он действительно распознается, но теперь я понял, что он подсвечивается зеленым, независимо от того, что вы вводите там после этой стрелки. Столбец pizza_price, конечно, имеет очень большой смысл.

4. @the_visit рад, что все отсортировано. 🙂

Ответ №2:

fetch_object() ВОЗВРАТ

объект со строковыми свойствами, который соответствует выбранной строке или NULL, если в результирующем наборе больше нет строк.