Ошибка при попытке запустить несколько запросов - PullRequest
0 голосов
/ 24 мая 2018

Извините, если это маленькая ошибка.Я использовал первый раз мульти-запрос.Ошибка 1 и ошибка 2 - оба кода одинаковы, за исключением того, что в строку вставки ошибки 2 добавлено одиночное двоеточие ('').если я эхо из цикла for показывает все хорошо.некоторый успех, но не вставленный в базу данных.Заранее спасибо.

Ошибка 1: Ошибка: в синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с INSERT INTO student_attendance (Participance_date, Participance_class_id, посещаемость) в строке 1


include("../includes/db.php");

if(!empty($_POST)) {

  $student_attendance_id            =   $_POST['student_attendance_id'];
  $attendance_date                  =   $_POST['attendance_date'];
  $attendance_class_id              =   $_POST['attendance_class_id'];
  $attendance_section_id            =   $_POST['attendance_section_id'];
  $attendance_student_id            =   $_POST['attendance_student_id'];
  if(isset($_POST['attendance_present_absent'])){
    $attendance_present_absent = $_POST['attendance_present_absent'];
  } else {
    $attendance_present_absent        =  '';
  }

$query = '';

         for($count = 0; $count<count($attendance_student_id); $count++)
    {

      $attendance_date_now              = mysqli_real_escape_string($connection, $attendance_date);
      $student_attendance_id_now        = mysqli_real_escape_string($connection, $student_attendance_id[$count]);
      $attendance_class_id_now          = mysqli_real_escape_string($connection, $attendance_class_id[$count]);
      $attendance_section_id_now        = mysqli_real_escape_string($connection, $attendance_section_id[$count]);
      $attendance_student_id_now        = mysqli_real_escape_string($connection, $attendance_student_id[$count]);
      $attendance_present_absent_now    = mysqli_real_escape_string($connection, $attendance_present_absent[$count]);

      $query .= "INSERT INTO student_attendance (attendance_date, attendance_class_id, attendance_section_id, attendance_student_id, attendance_present_absent ) ";
      $query .= "VALUES ('{$attendance_date_now}', '{$attendance_class_id_now}', '{$attendance_section_id_now}', '{$attendance_student_id_now}', '{$attendance_present_absent_now}' ) ";

      echo $attendance_date_now;
      echo $attendance_class_id_now . $attendance_section_id_now . "<br>";

    }
$result = mysqli_multi_query($connection, $query) or die("Error :" . mysqli_error($connection));

Ошибка2: у вас есть ошибка в вашем синтаксисе SQL, проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с ''anceance_date', 'Participance_class_id', 'Participance_section_id', 'Participance_s' в строке 1


include("../includes/db.php");

if(!empty($_POST)) {

  $student_attendance_id            =   $_POST['student_attendance_id'];
  $attendance_date                  =   $_POST['attendance_date'];
  $attendance_class_id              =   $_POST['attendance_class_id'];
  $attendance_section_id            =   $_POST['attendance_section_id'];
  $attendance_student_id            =   $_POST['attendance_student_id'];
  if(isset($_POST['attendance_present_absent'])){
    $attendance_present_absent = $_POST['attendance_present_absent'];
  } else {
    $attendance_present_absent        =  '';
  }

  for($count = 0; $count<count($attendance_student_id); $count++)
{

  $attendance_date_now              = mysqli_real_escape_string($connection, $attendance_date);
  $student_attendance_id_now        = mysqli_real_escape_string($connection, $student_attendance_id[$count]);
  $attendance_class_id_now          = mysqli_real_escape_string($connection, $attendance_class_id[$count]);
  $attendance_section_id_now        = mysqli_real_escape_string($connection, $attendance_section_id[$count]);
  $attendance_student_id_now        = mysqli_real_escape_string($connection, $attendance_student_id[$count]);
  $attendance_present_absent_now    = mysqli_real_escape_string($connection, $attendance_present_absent[$count]);

  $query .= "INSERT INTO student_attendance ('attendance_date', 'attendance_class_id', 'attendance_section_id', 'attendance_student_id', 'attendance_present_absent' ) ";
  $query .= "VALUES ('{$attendance_date_now}', '{$attendance_class_id_now}', '{$attendance_section_id_now}', '{$attendance_student_id_now}', '{$attendance_present_absent_now}' ) ";

  echo $attendance_date_now;
  echo $attendance_class_id_now . $attendance_section_id_now . "<br>";

}

$result = mysqli_multi_query($connection, $query) or die("Error :" . mysqli_error($connection));

1 Ответ

0 голосов
/ 24 мая 2018

Есть две ошибки.Во-первых, в цикле for вы должны добавить ; после каждой строки INSERT.Во-вторых, если вы хотите использовать множественную вставку, вы должны написать строку детали INSERT перед циклом, а затем просто добавить строки со значениями, используется разделитель ,.

include("../includes/db.php");

if(!empty($_POST)) {

$student_attendance_id            =   $_POST['student_attendance_id'];
$attendance_date                  =   $_POST['attendance_date'];
$attendance_class_id              =   $_POST['attendance_class_id'];
$attendance_section_id            =   $_POST['attendance_section_id'];
$attendance_student_id            =   $_POST['attendance_student_id'];
if(isset($_POST['attendance_present_absent'])){
 $attendance_present_absent = $_POST['attendance_present_absent'];
} else {
 $attendance_present_absent        =  '';
}

$query = '';

     for($count = 0; $count<count($attendance_student_id); $count++)
{

  $attendance_date_now              = mysqli_real_escape_string($connection, $attendance_date);
  $student_attendance_id_now        = mysqli_real_escape_string($connection, $student_attendance_id[$count]);
  $attendance_class_id_now          = mysqli_real_escape_string($connection, $attendance_class_id[$count]);
  $attendance_section_id_now        = mysqli_real_escape_string($connection, $attendance_section_id[$count]);
  $attendance_student_id_now        = mysqli_real_escape_string($connection, $attendance_student_id[$count]);
  $attendance_present_absent_now    = mysqli_real_escape_string($connection, $attendance_present_absent[$count]);

  $query .= "INSERT INTO student_attendance (attendance_date, attendance_class_id, attendance_section_id, attendance_student_id, attendance_present_absent ) ";
  $query .= "VALUES ('{$attendance_date_now}', '{$attendance_class_id_now}', '{$attendance_section_id_now}', '{$attendance_student_id_now}', '{$attendance_present_absent_now}' ); ";

  echo $attendance_date_now;
  echo $attendance_class_id_now . $attendance_section_id_now . "<br>";

}
$result = mysqli_multi_query($connection, $query) or die("Error :" . mysqli_error($connection));

ИЛИ

include("../includes/db.php");

if(!empty($_POST)) {

$student_attendance_id            =   $_POST['student_attendance_id'];
$attendance_date                  =   $_POST['attendance_date'];
$attendance_class_id              =   $_POST['attendance_class_id'];
$attendance_section_id            =   $_POST['attendance_section_id'];
$attendance_student_id            =   $_POST['attendance_student_id'];
if(isset($_POST['attendance_present_absent'])){
 $attendance_present_absent = $_POST['attendance_present_absent'];
} else {
 $attendance_present_absent        =  '';
}

$query = 'INSERT INTO student_attendance (attendance_date, attendance_class_id, attendance_section_id, attendance_student_id, attendance_present_absent ) VALUES ';

     for($count = 0; $count<count($attendance_student_id); $count++)
{

  $attendance_date_now              = mysqli_real_escape_string($connection, $attendance_date);
  $student_attendance_id_now        = mysqli_real_escape_string($connection, $student_attendance_id[$count]);
  $attendance_class_id_now          = mysqli_real_escape_string($connection, $attendance_class_id[$count]);
  $attendance_section_id_now        = mysqli_real_escape_string($connection, $attendance_section_id[$count]);
  $attendance_student_id_now        = mysqli_real_escape_string($connection, $attendance_student_id[$count]);
  $attendance_present_absent_now    = mysqli_real_escape_string($connection, $attendance_present_absent[$count]);

  $query .= ($count>0?",":"") . "('{$attendance_date_now}', '{$attendance_class_id_now}', '{$attendance_section_id_now}', '{$attendance_student_id_now}', '{$attendance_present_absent_now}' )";

  echo $attendance_date_now;
  echo $attendance_class_id_now . $attendance_section_id_now . "<br>";

}
$query .= ";"
$result = mysqli_multi_query($connection, $query) or die("Error :" . mysqli_error($connection));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...