Ошибка в моем синтаксисе sql, но я не знаю где

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с 'Office, meheh)' в строке 1

вот мой запрос sql

$sql1 = "INSERT INTO `tbl_charter`(`steps`, `personnel`, `timee`, `fees`, `documents`, `complaints`, `office`, `service`) 
         VALUES($InsertSteps','$InsertPersonnel','$InsertTime','$InsertFees','$InsertDocuments','$InsertComplaints',".$_GET["office_name"].",".$_GET["application_name"].")";

неэкранированные кавычки во входной строке

user10226920 31.10.2018 06:04

Подскажите, пожалуйста, где?

yung maistro 31.10.2018 06:07

что бы там ни было 's Office эта строка

user10226920 31.10.2018 06:08

Скорее всего, из-за ".$_GET["office_name"].", лучше использовать '$_GET["office_name"]'.

Jaswinder 31.10.2018 06:09

Я не голосую против, теперь я понимаю, что вы имеете в виду, вероятно, это была запятая в названии офиса.

yung maistro 31.10.2018 06:13

это опасная плохая практика, и я надеюсь, что ее нет на веб-сайте

user10226920 31.10.2018 06:17

Ваш запрос уязвим для внедрения sql. Пожалуйста, прекратите писать запросы, пока вы не прочитаете и не реализуете это. Я предполагаю, что вы используете mySqli. Если нет, то есть и версия PDO. Добавьте это в закладки и используйте в качестве справочника. websitebeaver.com/…

Joseph_J 31.10.2018 06:18

Возможный дубликат Как я могу предотвратить SQL-инъекцию в PHP?

Qirel 31.10.2018 06:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
8
85
3

Ответы 3

Похоже, вам не хватает одной кавычки перед $ InsertSteps и вокруг двух ссылок на $ _GET. Кроме того, попробуйте сначала экранировать свои переменные, рекомендуется всегда избегать ввода перед вызовом базы данных. Экранирование поможет защитить ваше приложение от злоумышленников, которые могут попытаться добавить дополнительные команды в ваш оператор SQL.

Пример:

$InsertSteps = mysql_real_escape_string($InsertSteps);
$InsertPersonnel = mysql_real_escape_string($InsertPersonnel);
$InsertTime = mysql_real_escape_string($InsertTime);
$InsertFees = mysql_real_escape_string($InsertFees);
$InsertDocuments = mysql_real_escape_string($InsertDocuments);
$InsertComplaints = mysql_real_escape_string($InsertComplaints);
$InsertOfficeName = mysql_real_escape_string($_GET["office_name"]);
$InsertApplicationName = mysql_real_escape_string($_GET["application_name"]);


$sql1 = "INSERT INTO `tbl_charter`(`steps`, `personnel`, `timee`, `fees`, `documents`, `complaints`, `office`, `service`) 
         VALUES('$InsertSteps','$InsertPersonnel','$InsertTime','$InsertFees','$InsertDocuments','$InsertComplaints','$InsertOfficeName','$InsertApplicationName')";

Я бы избегал использования mysql_real_escape_string(), чтобы избежать ваших переменных. Утомительно и легко забыть делать 100% времени на 100% переменных в коде. Использование подготовленных операторов полностью избавляет от этого.

Joseph_J 31.10.2018 06:20

^ не говоря уже о том, что mysql_ * был удален из php

user10226920 31.10.2018 06:21

Просто попробуйте запрос ниже

$sql1 = "INSERT INTO `tbl_charter`(`steps`, `personnel`, `timee`, `fees`, `documents`, `complaints`, `office`, `service`) VALUES('$InsertSteps','$InsertPersonnel','$InsertTime','$InsertFees','$InsertDocuments','$InsertComplaints','".$_GET['office_name']."','".$_GET['application_name']."')";

опасен, открыт для SQL-инъекций и никогда не должен использоваться

user10226920 31.10.2018 21:02
$appname=$_GET["application_name"];
$officename=$_GET["office_name"];
$sql1 = "INSERT INTO `tbl_charter`(`steps`, `personnel`, `timee`, `fees`,`documents`, `complaints`, `office`, `service`) VALUES('$InsertSteps','$InsertPersonnel','$InsertTime','$InsertFees','$InsertDocuments','$InsertComplaints','$officename','$appname')";

опасен, открыт для SQL-инъекций и никогда не должен использоваться

user10226920 31.10.2018 21:02

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