Подготовить оператор вставки SQLite внутри php для цикла

Я хочу подготовить оператор вставки SQL внутри PHP для цикла, мое утверждение выглядит примерно так

$insert_stmt = "";
for($x=1; $x<=$all_property[duration]; $x++) {
    $insert_stmt .= "INSERT INTO `schedule` VALUES ($all_property[serial], $_POST[Day$x])";

echo $insert_stmt;
mysqli_free_result($insert_stmt);   // Free result set for next query
}

где я ожидаю, что результат будет как

INSERT INTO `schedule` VALUES ($all_property[serial], $_POST[Day1] //for first loop
INSERT INTO `schedule` VALUES ($all_property[serial], $_POST[Day2] //for second loop

И так далее, но я получаю ошибку

синтаксическая ошибка, неожиданное "$x" (T_VARIABLE), ожидание "]" в schedule.php в строке 163

Так что, если кто-то может помочь мне исправить то, что не так в моем запросе.

3 ответа

Обновлено:

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

$insert_stmt = "INSERT INTO schedule VALUES (‘".$all_property[serial]."’, ‘".$_POST["Day".$x]."’)";

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

Нет, day1 и day2 не являются константными значениями, это поля $_POST[] fileds, сгенерированные из таблицы ниже

for ($ x = 1; $ x <= $ all_property ['duration']; $ x ++) {$ date_result = mysqli_query ($ connection, "SELECT DATE_ADD (dur_from, INTERVAL $ x-1 DAY) AS dur_from FROM batch_details WHERE serial = 1 "); $ today_date = mysqli_fetch_assoc ($ date_result); echo '" size = "12" value = ""> " size="20"placeholder =" Тема или тема " maxlength="50"обязательно> " size="18" placeholder="Room No" maxlength="3" pattern="[0-9]{3}" required> " size="18" placeholder=" Основной идентификатор лектора " maxlength="3" pattern="[A-Za-z]{3}" требуется> "size =" 18 "местозаполнитель =" Идентификатор лектора Subs " maxlength="3" pattern="[A-Za-z]{3}" required> " size="20" placeholder="Тема или Тема" maxlength = "50" требуется> "size =" 18 "placeholder =" Номер комнаты "maxlength =" 3 "pattern =" [0-9] {3} "Требуется>" size = "18" placeholder = "Идентификатор основного лектора" maxlength="3" pattern="[A-Za-z]{3}" required> " size="18" placeholder=" Идентификатор вспомогательного лектора "maxlength =" 3 "pattern =" [A-Za-z] {3} "требуется>" size = "20" заполнитель = "Тема или тема" maxlength = "50" требуется> "size =" 18 "заполнитель =" номер комнаты "maxlength = "3" pattern = "[0-9] {3}" required> "size =" 18 "placeholder =" ИД основного лектора "maxlength =" 3 "pattern =" [A-Za-z] {3} " требуется> " size="18" placeholder="Subs Лектор ID" maxlength="3" pattern="[A-Za-z]{3}"требуется> ';

где, в зависимости от "длительности" (которая в основном равна дням), поле ввода генерируется с именем = "День $x", а затем снова мне нужно вставить это значение в другую таблицу.

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