0

hello. i got this error and i have no idea why or what is going on. could someone explain in layman's term please and help me out.

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'event_id' cannot be null' in /home/dhsbnet/public_html/ems/add_guest.php:36 Stack trace: #0 /home/dhsbnet/public_html/ems/add_guest.php(36): PDOStatement->execute() #1 {main} thrown in /home/dhsbnet/public_html/ems/add_guest.php on line 36

code being referred to, line 36 is $guests->execute() :

if(isset($_SESSION['sess_user_id']))
{
  if(isset($_POST['save']))
  {
    require "connection.php";
    $name = $_POST['guest-name'];
    $event = $_POST['event'];
    $session = $_SESSION['sess_user_id'];
    $status = "";
    $status .= "0";

    $guests = $dbh->prepare("INSERT INTO guest(guser_id,guest_name,event_id,status) VALUES (?,?,?,?)");

    for($i = 0; $i < count($_POST['guest-name']); $i++)
    {
      if(trim($_POST['guest-name'][$i]) !== '')
      {
        $guests->bindParam(1, $session, PDO::PARAM_INT);
        $guests->bindParam(2, $name[$i], PDO::PARAM_STR);
        $guests->bindParam(3, $event, PDO::PARAM_INT);
        $guests->bindParam(4, $status, PDO::PARAM_INT);
        $guests->execute();

        if($guests->rowCount() > 0)
        {
          echo "<script>window.location.href = 'guest_list.php';</script>";
        } 
      }
    }
  }
}

<div class="dropdown">
    <label>Event : <label/>
    <select name="event" id="dd-event" required>
      <option value="0" selected>Event</option>
      <?php foreach($retrieve as $r): ?>
      <option value="<?=$r['event_id']?>"><?=$r['event_name']?></option>
      <?php endforeach ?>
    </select>
  </div>

in db event_id column is int, not null, not auto incremented. TIA!

2
Contributors
4
Replies
17
Views
2 Years
Discussion Span
Last Post by nadiam
0

Check your generated HTML for the dropdown. It says you are trying to insert an event without an ID. Probably, one of the options does not have a value. If it is, check your POST array for the value of event.

0

but i checked it. i changed this:

<option value="<?=$r['event_id']?>"><?=$r['event_name']?></option>

to

<option value="<?=$r['event_id']?>"><?=$r['event_id']?></option>

so i could c what the event id and it does show the id.

0

i used var_dump and it is null. coz i always automatically assume its a php problem i didn't check my html so i did and found that the drop down wasn't in the form tag.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.