Ошибка в моем коде запроса при правильном синтаксисе для использования рядом .. ‘ ‘оплачено’)’ PHP

#php

#php

Вопрос:

я все еще не могу решить проблему с моим кодом, пытаюсь вставить данные моей формы в свою базу данных mysql, и мой запрос выдает ошибку. Все поля базы данных, кроме ‘patient_name’ и ‘статус платежа’ и ‘дата платежа’, являются int, но я все еще получаю ошибку каждый раз, когда отправляю запрос

‘ОШИБКА ЗАПРОСА У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с ‘ ‘платный’)’

все еще не могу понять, что не так в коде

Мой запрос :

 $query = "INSERT INTO payment (
      patient_name,
      payment_date,
      consult_charge,
      medicine_charge,
      blood_report,
      injection_charge,
      xray_charge,
      total_charge,
      payment_status) VALUES(
      '$patient_name',
      now(),
      $consult_charge,
      $medicine_charge,
      $blood_report,
      $injection_charge,
      $xray_charge,
      $total_charge,
      'paid')";
  

Мой Html-код:

 <form action="" method="POST">

<select class="custom-select" name="patient_name">
  <option selected value="" >Select Patient</option>
  <?php while ($row = mysqli_fetch_assoc($patient_query_result)) { ?>
    <option value="<?php echo $row['surname'] .' '.$row['names']; ?>"><?php echo $row['surname'] .' '.$row['names']; ?></option>
  <?php } ?>
</select>

<label for="consult_charge">Consulting Charge </label>
<input type="text" class="form-control" id="consult_charge" name="consult_charge">

<label for="medicine_charge">Medicine Charge </label>
<input type="text" class="form-control" id="medicine_charge" name="medicine_charge">

<label for="blood_report">Blood Report </label>
<input type="text" class="form-control" id="blood_report" name="blood_report">

<label for="injection_charge">Injection Charge</label>
<input type="text" class="form-control" id="injection_charge" name="injection_charge">

<label for="xray_charge">X-Ray </label>
<input type="text" class="form-control" id="xray_charge" name="xray_charge">

<label for="total_charge">Total </label>
<input type="text" class="form-control" id="total_charge" name="total_charge" readonly>

  <button type="submit" name="submit" class="btn btn-primary">SAVE</button>

</form>
  

Комментарии:

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

2. удалить » вокруг оплачено

3. добавить » » вокруг оплачено

4. Это неправильно @SanthoshKumar, поскольку payed — это строка.

5. Не требуется @SanthoshKumar, остальные значения являются строками и должны быть заключены в кавычки. платный не является актуальной проблемой.

Ответ №1:

Пожалуйста, попробуйте это, ваши значения должны быть в одинарных кавычках. Вы пропустили функцию after now() .

 $query = "INSERT INTO payment (
      patient_name,
      payment_date,
      consult_charge,
      medicine_charge,
      blood_report,
      injection_charge,
      xray_charge,
      total_charge,
      payment_status) 
      VALUES(
      '$patient_name',
      now(),
      '$consult_charge',
      '$medicine_charge',
      '$blood_report',
      '$injection_charge',
      '$xray_charge',
      '$total_charge',
      'paid')";
  

Комментарии:

1. глупо с моей стороны, я учил, поскольку поле в базе данных является int, мне не нужно его цитировать … спасибо

2. Ваши поля ввода для этих чисел type="text" таковы, что, по вашему мнению, они будут отправлены как @funintellect? Вы должны привести их к INT, если хотите иметь INT в базе данных.