Есть сложный запрос для вставки некоторых данных, которые не входят в мою базу данных

У меня есть базовая форма, я хочу, чтобы пользователи вводили данные, а затем вставляли эту информацию в мою базу данных. Мой запрос немного сложен, и когда я пытаюсь выполнить запрос, я получаю сообщение об ошибке. Ищете решение, которое поможет решить эту проблему.

Вот небольшой код, чтобы дать вам представление о том, как выглядит моя проблема. У меня есть форма с кнопкой отправки, которая отправляет поля ввода пользователя в saveSale.php, и именно здесь находится мой запрос на вставку.

В моем файле saveSale я попытался проверить результат, чтобы узнать, был ли запрос успешным.

$query = "INSERT INTO lead_log (";
$query .= "salesperson_id, fname, lname, address, city, state, 
            zip, source, commercial, paperwork_submitted, claim_submitted, 
            commission_earned, date_proposal, date_install, date_sold, 
            date_followup, status, sale_price, amount_quoted, ac, hp, 
            furnace, ah, boiler, generator, minisplit1, minisplit2, 
            minisplit3, minisplit4, accessories1, accessories2, 
            accessories3, accessories4, accessories5, accessories6, 
            accessories7, comments, followup";

$query .= " ) VALUES (";

$query .= "' . $currentUser->id ', '{$fname}', '{$lname}', '{$address}, '{$city}, '{$state}', '{$zip}', ";

$query .= "' {$_POST['source']}', '{$_POST['commercial']}', '{$_POST['paperwork_submitted']}','{$_POST['claim_submitted']}', '{$commission_earned}', ";

$query .= "'" .convertDate($_POST['date_proposal']). "'," .convertDate($_POST['date_install'])."',";

$query .= "'".convertDate($_POST['date_sold'])."'," .convertDate($_POST['date_followup'])."',";

$query .= " '{$_POST['status']}', '{$salePrice}', '{$amount_quoted}', '{$_POST['AC']}', '{$_POST['HP']}', '{$_POST['furnace']}',
          '{$_POST['AH']}', '{$_POST['boiler']}', '{$_POST['generator']}', '{$_POST['minisplit1']}', '{$_POST['minisplit2']}',
          '{$_POST['minisplit3']}', '{$_POST['minisplit4']}', '{$_POST['accessories1']}', '{$_POST['accessories2']}', '{$_POST['accessories3']}',
          '{$_POST['accessories4']}', '{$_POST['accessories5']}', '{$_POST['accessories6']}', '{$_POST['accessories7']}', '{$comments}', '{$followup}' " ;

$query .= ")";
$result = $con->query($query);
if ($result) {
    redirect_to("index.php");
    echo "Insert Successful";
} else {
    echo "Insert Failure";
}

Форма

 <form action = "saveSale.php" method = "post" name='form' onsubmit = "return validateForm()">
    <input type = "submit" value = "Save" name = "submit" class='buttonClass defaultButton'/>

Query Result

INSERT INTO lead_log (salesperson_id, fname, lname, address, city, state, zip, source, commercial, paperwork_submitted, claim_submitted, commission_earned, date_proposal, date_install, date_sold, date_followup, status, sale_price, amount_quoted, ac, hp, furnace, ah, boiler, generator, minisplit1, minisplit2, minisplit3, minisplit4, accessories1, accessories2, accessories3, accessories4, accessories5, accessories6, accessories7, comments, followup ) VALUES (' . 1 ', 'Montrell', 'Sampson', ', ', '', '', ' ', 'n', '','', '0', '-03-21',0000-01-01','0000-01-01',0000-01-01', 'Sold', '13107.00', '13107.00', '73', '14', '218', 'null', 'null', 'null', 'null', 'null', '48', 'null', '45', '45', 'null', 'null', 'null', 'null', 'null', 'none', '' )

Это изображение с моим сообщением об ошибке.

Некоторые разумные отступы кода были бы хорошей идеей. Это помогает нам читать код и, что более важно, помогает вы отлаживаете свой кодВзгляните на стандарт кодирования в ваших интересах. Вас могут попросить изменить этот код через несколько недель/месяцев, и в конце вы поблагодарите меня.

RiggsFolly 01.04.2019 13:32
«Я получаю обратно сообщение об ошибке» Что это?
Cid 01.04.2019 13:35

Пожалуйста, разместите здесь сообщение об ошибке.

Pupil 01.04.2019 13:35

Было бы также полезно, если бы вы сообщили нам, что на самом деле было сообщением об ошибке, которое вы получили.

Nick 01.04.2019 13:35

Не могли бы вы предоставить окончательную $query стоимость до mysqli_query звонка?

Nik 01.04.2019 13:36

Очевидно, вы получите сообщения об ошибках, если вы не поняли, что это за сообщение об ошибке, вы также можете поделиться скриншотом.

Badrinath 01.04.2019 13:52

Я получаю сообщение об ошибке в операторе if, потому что запрос не выполнен.

Montrell Jubilee 01.04.2019 13:57

Используйте этот оператор, чтобы показать, какую ошибку вы получили в запросе, и оператор sql else{ echo "Insert Failure. Error: ".mysqli_error().". Query: <br /> <pre>$query</pre>";}. Таким образом, мы знаем, как лучше всего вам помочь

Kebab Programmer 01.04.2019 13:59

Спасибо за помощь. Я новичок в использовании StackOverFlow, и мне нужно время, чтобы понять сообщество.

Montrell Jubilee 01.04.2019 14:03

Вставить ошибку. Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '','0000-01-01',0000-01-01', 'Продано', '13107.00', '13107.00', '73' , '14', '218', ' в строке 1. Запрос:

Montrell Jubilee 01.04.2019 14:03
," .convertDate($_POST['date_followup'])."' <- отсутствует одна кавычка вокруг этого. Обратите внимание, что ваш запрос уязвим для SQL-инъекций. Вам следует рассмотреть возможность использования подготовленных операторов.
Cid 01.04.2019 14:32

Да, я знаю, что мне нужно изменить дизайн своей страницы, чтобы предотвратить эти инъекции, просто хочу сначала выяснить свой запрос.

Montrell Jubilee 01.04.2019 14:40
Стоит ли изучать 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 и хотите разрабатывать...
2
12
128
1

Ответы 1

INSERT INTO lead_log (salesperson_id, fname, lname, address, city, state, zip, source, commercial, paperwork_submitted, claim_submitted, commission_earned, date_proposal, date_install, date_sold, date_followup, status, sale_price, amount_quoted, ac, hp, furnace, ah, boiler, generator, minisplit1, minisplit2, minisplit3, minisplit4, accessories1, accessories2, accessories3, accessories4, accessories5, accessories6, accessories7, comments, followup ) VALUES (' . 1 ', 'Montrell', 'Sampson', ', ', '', '', ' ', 'n', '','', '0', '-03-21',0000-01-01','0000-01-01',0000-01-01', 'Sold', '13107.00', '13107.00', '73', '14', '218', 'null', 'null', 'null', 'null', 'null', '48', 'null', '45', '45', 'null', 'null', 'null', 'null', 'null', 'none', '' )

Кажется, не хватает 2 кавычек, это должно выглядеть примерно так

INSERT INTO lead_log (salesperson_id, fname, lname, address, city, state, zip, source, commercial, paperwork_submitted, claim_submitted, commission_earned, date_proposal, date_install, date_sold, date_followup, status, sale_price, amount_quoted, ac, hp, furnace, ah, boiler, generator, minisplit1, minisplit2, minisplit3, minisplit4, accessories1, accessories2, accessories3, accessories4, accessories5, accessories6, accessories7, comments, followup ) VALUES (' . 1 ', 'Montrell', 'Sampson', ', ', '', '', ' ', 'n', '','', '0', '-03-21','0000-01-01','0000-01-01','0000-01-01', 'Sold', '13107.00', '13107.00', '73', '14', '218', 'null', 'null', 'null', 'null', 'null', '48', 'null', '45', '45', 'null', 'null', 'null', 'null', 'null', 'none', '' )

Поэтому попробуйте изменить свой код с:

$query .= "'" .convertDate($_POST['date_proposal']). "'," .convertDate($_POST['date_install'])."',";

$query .= "'".convertDate($_POST['date_sold'])."'," .convertDate($_POST['date_followup'])."',";

к :

$query .= "'" .convertDate($_POST['date_proposal']). "','" .convertDate($_POST['date_install'])."',";

$query .= "'".convertDate($_POST['date_sold'])."','" .convertDate($_POST['date_followup'])."',";

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

Кроме того, этот код уязвим для SQL-инъекций, так что следите за этим.

Спасибо за помощь

Montrell Jubilee 01.04.2019 17:19

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