Web

PHP REST API POSTMAN. Фатальная ошибка Uncaught PDOException: SQLSTATE[42000]: Синтаксическая ошибка или нарушение доступа: 1064 У вас ошибка в синтаксисе SQL

Я получаю эту ошибку в почтовом клиенте при работе с PHP REST API:

Неустранимая ошибка : Uncaught PDOException: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования с'isting_name = 'name', address = 'test', po ... 'в строке 2 в C: \ xampp \ htdocs \ project \ dTb \ models \ Listing.php: 137 Трассировка стека:

 

Вот моя модель

// Создание  Post

public function create(){

// запрос

$query = 'INSERT INTO ' . $this->table . 

            'SET

            listing_name = :listing_name,

            address = :address,

            postal_code = :postal_code,

            google_id = :google_id,

            website = :website,

            tag_array = :tag_array,

            area_array = :area_array';

            // подготовка выражения

            $stmt = $this->conn->prepare($query);

            // очитска данных

            $this->listing_name = htmlspecialchars(strip_tags($this->listing_name));

            $this->address = htmlspecialchars(strip_tags($this->address));

            $this->postal_code = htmlspecialchars(strip_tags($this->postal_code));

            $this->google_id = htmlspecialchars(strip_tags($this->google_id));

            $this->website = htmlspecialchars(strip_tags($this->website));

            $this->tag_array = htmlspecialchars(strip_tags($this->tag_array));

            $this->area_array = htmlspecialchars(strip_tags($this->area_array));

            // привязка данных

            $stmt->bindParam(':listing_name', $this->listing_name);

            $stmt->bindParam(':address', $this->address);

            $stmt->bindParam(':postal_code', $this->postal_code);

            $stmt->bindParam(':google_id', $this->google_id);

            $stmt->bindParam(':website', $this->website);

            $stmt->bindParam(':tag_array', $this->tag_array);

            $stmt->bindParam(':area_array', $this->area_array);

            // выполнение запроса

            if($stmt->execute()) {

                return true;

            }

            printf("Error: %s ", $stmt->error);

}

 

create.php

<?php 

// заголовки

header('Access-Control-Allow-Origin: *');

header('Access-Control-Allow-Methods: POST');

header('Access-Control-Allow-Headers: Access-Control-Allow-Headers, Access-Control-Allow-Methods, Authorization, X-Requested-With');

include_once '../../config/Database.php';

include_once '../../models/Listing.php';

// инициализация БД и соединения

$database = new Database();

$db = $database->connect();

// инициализация списка объектов

$listing = new Listing($db);

// получение сырых POST данных

$data = json_decode(file_get_contents("php://input"));

$listing->listing_name = $data->listing_name;

$listing->address = $data->address;

$listing->postal_code = $data->postal_code;

$listing->google_id = $data->google_id;

$listing->website = $data->website;

$listing->tag_array = $data->tag_array;

$listing->area_array = $data->area_array;

// создание листинга

if($listing->create()){

    echo json_encode(

        array('message' => 'Post создан)

    );

} else {

    echo json_encode(

        array('message' => 'Список не создан')

    );

}

  

Вывод:

{

"listing_name": "test name",

"address": "test address",

"postal_code": "n12 345",

"google_id": "googleid",

"website": "website",

"tag_array": "tagarray, array",

"area_array": "areaarray, array"

}

 

Ответ 1

Попробуйте добавить пробел перед "SET" в своем запросе

$query = 'INSERT INTO '. 

            $this->table. 

            ' SET

            listing_name = :listing_name,

Схожие статьи

Что такое видеохостинги типа Ютуба, как на них можно загружать видео
Web

Что такое видеохостинги типа Ютуба, как на них можно загружать видео

Самые полезные расширения для Google Chrome для веб-разработчика
Web

Самые полезные расширения для Google Chrome для веб-разработчика

Программы для создания макета сайта и лучшие онлайн-сервисы
Web

Программы для создания макета сайта и лучшие онлайн-сервисы

Web

Получение необработанной строки запроса SQL из подготовленных операторов PDO

×