Вставка базы данных php не работает по плану

Этот код выдает ошибку. Я пытался устранить неполадки, но что-то упустил. Поскольку я написал это, я упускаю из виду синтаксическую ошибку. Любая помощь ?

$kql = "
INSERT INTO References (Email, Company1, Person1, Contact1, Company2, Person2, Contact2, Company3, Person3, Contact3, Company4, Person4, Contact4, Company5, Person5, Contact5)
VALUES ( '$company44','$Company', '$Person', '$Contact', '$Company1', '$Person1', '$Contact1', '$Company2', '$Person2', '$Contact2', '$Company3', '$Person3', '$Contact3', '$Company4', '$Person4', '$Contact4')";

Ошибка

Error: 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 'References (Email, Company1, Person1, Contact1, Company2, Person2, Contact2, Com' at line 1

Я думаю, это вызывает ошибку, потому что References на самом деле является ключевое слово(по крайней мере для MySQL). Попробуйте сделать простой SELECT в таблице, если ошибка все равно возникает

Carl Binalla 03.10.2018 09:27

Попробуйте вставить запрос с помощью phpMyadmin, заменив переменную фиктивными данными

Harish Karthick 03.10.2018 09:27

Какую СУБД вы используете? MySQL, MS SQL? pgSQL?

Cid 03.10.2018 09:29

@Swellar он также используется в MSSQL и pgSQL

Cid 03.10.2018 09:40

@Cid Спасибо за информацию, к сожалению, я не могу редактировать свой первоначальный комментарий

Carl Binalla 03.10.2018 09:41

Используемая СУБД - MYSQL.

Jerome Axel 03.10.2018 09:55

Пожалуйста, не создавайте SQL-запросы, объединяя строки вместе. Всегда следует использовать параметризованные запросы, в противном случае возникает значительный риск для безопасности из-за внедрения SQL. Кроме того, использование параметризованной формы сделает ваш код более надежным. Например, если бы $person был «мистером О'Брайеном», его имя закрывало бы вашу кавычку в середине его имени, вызывая новую синтаксическую ошибку.

Dragonthoughts 03.10.2018 09:59

@Swellar, ваш первый ответ, помог мне, создал таблицу с другим именем БД, и это сработало.

Jerome Axel 03.10.2018 10:17

всегда пишите код по стандартам, и таких ошибок у вас не будет

Davit Huroyan 03.10.2018 10:54
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
9
48
1

Ответы 1

REFERENCES - это ключевое слово SQL, используемое для определения внешний ключ.

Если у вас есть таблица / столбец с именем с ключевым словом SQL, вы должны заключить имя таблицы / столбца в определенные символы.

MySQL

INSERT INTO `References` (...) ...

MS SQL

INSERT INTO [References] (...) ...

Postgre SQL

INSERT INTO "References" (...) ...

Я не уверен в pgSQL, может кто-нибудь подтвердить?


Например, ничто (кроме здравого смысла) не мешает вам создать базу данных с именем INSERT с таблицей INTO, имеющей столбец VALUE(42).

Этот запрос работает:

USE [INSERT]
SELECT [INTO].[VALUE(42)] FROM [INTO]

Другие вопросы по теме