Улучшение функции $karl "addToCart" в PHP с помощью подготовленных операторовPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Улучшение функции $karl "addToCart" в PHP с помощью подготовленных операторов

Сообщение Гость »


Привет, сообщество StackOverflow!

В настоящее время я создаю приложение для онлайн-покупок и столкнулся с проблемой реализации. Я разработал метод под названием addToCart, который позволяет пользователю добавлять товары в корзину. Он использует подготовленные операторы PHP для взаимодействия с базой данных MySQL.

Вот что у меня есть:

общественная функция addToCart($userId, $productId, $quantity){ $status = "Оскорбление"; $stmt = $this->db->getConnection()->prepare("SELECT * FROM cars WHERE user_id = ? AND status = ?"); $stmt->bind_param("is", $userId, $status); $stmt->выполнить(); $result = $stmt->get_result(); $row = $result->fetch_assoc(); если ($строка) { // Wenn der Benutzer bereits einen aktiven Warenkorb Hat, verwenden der CartID $cartId = $row['cart_id']; // Überprüfen, ob das Produkt bereits im Warenkorb ist $stmt = $this->db->getConnection()->prepare("ВЫБЕРИТЕ количество ИЗ корзиныпродуктов ГДЕ cart_id = ? AND product_id =?"); $stmt->bind_param("ii", $cartId, $productId); $stmt->выполнить(); $result = $stmt->get_result(); $row = $result->fetch_assoc(); если ($строка) { // Wenn das Produkt bereits im Warenkorb ist, aktualisieren der Menge $newQuantity = $row['quantity'] + $quantity; $stmt = $this->db->getConnection()->prepare("ОБНОВЛЕНИЕ набора товаров в корзину = ? ГДЕ cart_id = ? AND product_id =?"); $stmt->bind_param("iii", $newQuantity, $cartId, $productId); вернуть $stmt->execute(); } еще { // Wenn das Produkt nicht im Warenkorb ist, füge hinzu $stmt = $this->db->getConnection()->prepare("ВСТАВИТЬ В корзинупродукты (cart_id, product_id, количество) ЗНАЧЕНИЯ (?, ?, ?)"); $stmt->bind_param("iii", $cartId, $productId, $quantity); вернуть $stmt->execute(); } } } } Зарегистрироваться Зарегистрироваться Vorname Новое имя Электронная почта Пароль Лучший пароль

Bereits Registriert ? Более высокий уровень Войти Войти Электронная почта:
Пароль:

Ны здесь? Высшая регистрация Похоже, что эта функция работает в большинстве сценариев, но мне интересно:
[*]Есть ли более эффективный и понятный способ структурировать эту логику, чтобы минимизировать количество вызовов базы данных? [*]Есть ли потенциальные ловушки или крайние случаи, которые я мог бы упустить из виду при таком подходе?
Буду очень признателен за любые советы и подсказки по оптимизации. Заранее спасибо!

Я опробовал текущую реализацию функции addToCart и ожидал, что она будет эффективно обрабатывать добавление товаров в корзину пользователя, минимизируя при этом обращения к базе данных. Я хотел, чтобы функция сначала проверяла, существует ли уже корзина для пользователя, а затем, в зависимости от того, находится ли продукт уже в корзине, либо обновляла количество, либо добавляла новую запись для продукта. Я не уверен, что это самый оптимальный способ добиться этого, особенно в отношении производительности базы данных. Вот почему я жду отзывов о возможных улучшениях и подводных камнях.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»