#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, если в результирующем наборе больше нет строк.