Задать вопрос
@VANAGANT

Ошибка запросе, в чем причина?

Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[u.id](u.id) AS user_id, p.*, [c.quantity](c.quantity) FROM cart c JOIN produc' at line 1 in C:\OSPanel\domains\upautostore\cart.php:10 Stack trace: #0 C:\OSPanel\domains\upautostore\cart.php(10): mysqli->prepare() #1 {main} thrown in C:\OSPanel\domains\upautostore\cart.php on line 10

Как исправить эту ошибку?

<?php
session_start();
include 'inc/config.php';

if (!isset($_SESSION['user'])) {
   header('Location: login.php');
}

// Объединяем два SQL-запроса в один
$cart_query = $mysqli->prepare("SELECT [u.id](u.id) AS user_id, p.*, [c.quantity](c.quantity) 
FROM cart c JOIN products p ON [c.product_id](c.product_id) = [p.id](p.id) 
JOIN users u ON [c.user_id](c.user_id) = [u.id](u.id) 
WHERE [u.username](u.username) = ?");
$cart_query->bind_param("s", $_SESSION['user']);
$cart_query->execute();
$cart_result = $cart_query->get_result();
$total_price = 0;
?>
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
Melkij
@Melkij
DBA Team для вашего PostgreSQL?
SELECT [u.id](u.id)

а где вы такой синтаксис нашли? Совершенно очевидно непонимание от сервера, что вы этим пытаетесь сказать, я тоже не понимаю, что этот синтаксис должен значить.
https://dev.mysql.com/doc/refman/8.4/en/identifier...
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Такое ощущение, что код пропустили через какой-то markdown-редактор, который посчитал, что запись вида u.id это адрес сайта и автоматически заменил на соответствующий markdown-синтаксис ссылок. Такое может быть, например, при пересылке кода как обычного текста в мессенджерах.
67bc7a1565357335276039.png
Ну а малограмотный кодер вставил этот markdown-код не задумываясь.
Так что причина - копипаста без знания синтаксиса конкретного диалекта SQL.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы