ScaperExe ScaperExe - 4 months ago 7
PHP Question

Inserting into Database issue pdo

I'm not sure if it's cause i'm really tired or what; I can't seem to figure out why i can't insert into my database with this code.

<?php
require 'mysqlcon.php';
?>

<?php


if(isset($_POST["submit"])){
try {
$dbh = new PDO("mysql:host=$hostname;dbname=CSY2028",$username,$password);

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
$sql = "INSERT INTO bookings (name, email)
VALUES ('".$_POST["name"]."','".$_POST["email"]."')";
if ($dbh->query($sql)) {
header("location: index.php");
echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>";

}
else{
echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>";
}

$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}

}
?>


I have the following table i've checked that the ID's, names are all the same & matching. It's just not inserting anything?

<?php
require 'mysqlcon.php';
?>

<!-- Main -->
<section id="main" class="wrapper">
<div class="container">
<section>
<h3>Book Novelty Vehicle</h3>
<form action="bookingsql.php" method="post">
<div class="row uniform 50%">
<div class="6u 12u$(xsmall)">
<input type="text" name="name" id="name" value="name" placeholder="Name" />
</div>
<div class="6u$ 12u$(xsmall)">
<input type="email" name="email" id="email" value="email" placeholder="Email" />
</div>
<div class="6u 12u$(xsmall)">
<input type="text" name="address" id="address" value="" placeholder="Address" />
</div>
<div class="6u$ 12u$(xsmall)">
<input type="text" name="pup" id="pup" value="" placeholder="Pick up point" />
</div>
<div class="6u 12u$(xsmall)">
<input type="text" name="phone" id="phone" value="" placeholder="Phone Number" />
</div>

<div class="6u$ 12u$(xsmall)">
<input type="text" name="event" id="event" value="" placeholder="Event Type" />
</div>

<div class="12u$">
<div class="select-wrapper">
<select name="category" id="category">
<option value="">- Novelty Vehicle Option -</option>
<option value="1">One</option>
<option value="1">Two</option>
<option value="1">Three</option>
<option value="1">Four</option>
</select>
</div>
</div>
<div class="6u$ 12u$(small)">
<input type="checkbox" id="human" name="human">
<label for="human">You are aware this is for booking novelty vehicles only?</label>
</div>
<div class="12u$">
<textarea name="info" id="info" placeholder="Please give us any additional information, this will help us speed up your booking process." rows="6"></textarea>
</div>
<div class="12u$">
<ul class="actions">
<li><input type="submit" value="Book Vehicle" class="special" /></li>
<li><input type="reset" value="Reset" /></li>
</ul>
</div>
</div>
</form>
</section>

</div>
</section>

Answer

Unnamed submit

<input type="submit" value="Book Vehicle" class="special" />

and nothing inside if(isset($_POST["submit"])){...} will ever fire up.

So do:

<input name="submit" type="submit" value="Book Vehicle" class="special" />

Plus, since you're using PDO, use a prepared statement. You're open to an SQL injection.

References:

Comments