gary falkland gary falkland - 1 month ago 14
PHP Question

Multiple Insert Queries in PHP

I am trying to create a php/html form which will insert results into a dog show database. The problem no matter what I do I get this error:

QUERY FAILED .You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO.

Here is the code for the page any help appreciated.



<?php

if(isset($_POST['create_show'])) {
//Insert Judges
$show_title = escape($_POST['show_title']);
$show_user = escape($_POST['show_user']);
$show_category_id = escape($_POST['show_category_id']);
$show_status = escape($_POST['show_status']);
// $show_image = escape($_FILES['show_image']['name']);
//$show_image_temp = escape($_FILES['image']['tmp_name']);
$show_tags = escape($_POST['show_tags']);
$show_content = escape($_POST['show_content']);
//$show_date = escape(date('d-m-y'));
//INSERT Judges
$judge_affix = escape($_POST['judge_affix']);
$judge_name = escape($_POST['judge_name']);
$judge_show = escape($_POST['show_idj']);
//Insert Dogs
$dog_name = escape($_POST['dog_name']);
$resultIDD = escape($_POST['resultIDD']);
//Insert Into Results
$class_name = escape($_POST['class_name']);
$placement = escape($_POST['placement']);
$award = escape($_POST['award']);

//move_uploaded_file($show_image_temp, "../images/$show_image" );

//Insert Shows
$query = "INSERT INTO shows (show_category_id, show_title, show_user, show_content, show_tags, show_status) VALUES ('$show_category_id','$show_title','$show_user','$show_content','$show_tags','$show_status');";
$query .= "INSERT INTO judges (judge_affix, judge_name) VALUES ('$judge_affix','$judge_name');";
$query .= "INSERT INTO dogs (dog_name, resultIDD) VALUES ('$dog_name','$resultIDD');";
$query .= "INSERT INTO result(class_name, placement,) VALUES ('$class_name','$placement')";

$create_show_query = mysqli_query($connection, $query);

confirmQuery($create_show_query);

$the_show_id = mysqli_insert_id($connection);


echo "<p class='bg-success'>Show Created. <a href='../show.php?s_id={$the_show_id}'>View Post </a> or <a href='shows.php'>Edit More Shows</a></p>";

}

?>

<form action="" method="post" enctype="multipart/form-data">


<div class="form-group">
<label for="show_title">Show Title</label>
<input type="text" class="form-control" name="show_title">
</div>

<div class="form-group">
<label for="category">Category</label>
<select name="show_category" id="">

<?php

$query = "SELECT * FROM categories";
$select_categories = mysqli_query($connection,$query);

confirmQuery($select_categories);


while($row = mysqli_fetch_assoc($select_categories )) {
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];


echo "<option value='$cat_id'>{$cat_title}</option>";

}
?>

</select>

</div>


<div class="form-group">
<label for="users">Users</label>
<select name="post_user" id="">

<?php

$users_query = "SELECT * FROM users";
$select_users = mysqli_query($connection,$users_query);

confirmQuery($select_users);


while($row = mysqli_fetch_assoc($select_users)) {
$user_id = $row['user_id'];
$username = $row['username'];


echo "<option value='{$username}'>{$username}</option>";

}

?>

</select>

</div>

<!-- <div class="form-group">
<label for="title">Post Author</label>
<input type="text" class="form-control" name="author">
</div> -->

<div class="form-group">
<select name="show_status" id="">
<option value="draft">Show Status</option>
<option value="published">Published</option>
<option value="draft">Draft</option>
</select>
</div>

<div class="form-group">
<label for="show_tags">Show Tags</label>
<input type="text" class="form-control" name="show_tags">
</div>

<div class="form-group">
<label for="judge_name">Show Tags</label>
<input type="text" class="form-control" name="judge_name">
</div>

<div class="form-group">
<label for="judge_affix">Show Tags</label>
<input type="text" class="form-control" name="judge_affix">
</div>

<div class="form-group">
<label for="show_content">Show Content</label>
<textarea class="form-control " name="show_content" id="" cols="30" rows="5">
</textarea>
</div>

<div class="form-group">
<p>Minor Puppy Dog</p>
</div>

<div class="form-group">
<label for="dog_name">1st Dog Name</label>
<input type="text" class="form-control" name="dog_name">
</div>

<div class="form-group">
<input type="hidden" class="form-control" name="placement" value="1">
</div>


<div class="form-group">
<input class="btn btn-primary" type="submit" name="create_show" value="Publish Show">
</div>


</form>




dhh dhh
Answer

The mysqli_query only executes one single query.

For executing multiple queries at once, you can use mysqli_multi_query.

Simply replace your mysqli_query with the mysqli_multi_query like so:

$create_show_query = mysqli_multi_query($connection, $query);
Comments