Reputation: 13
My problem is my PHP insert code is not writing to the database -- I feel it will be a small error with the HTML form below but I cannot place it.
HTML form (sorry for indenting)
<form method='post' action='form.php'>
<div class='form-group'>
<input type='email' class='form-control' id='email' placeholder='Email : [email protected]'>
</div>
<div class='form-group'>
<input type='text' class='form-control' id='name' placeholder='Name : Joe Bloggs'>
</div>
<div class='form-group'>
<input type='textarea' class='form-control' id='message' placeholder='Message : Hey, can you do this job?'>
</div>
<button type='submit' class='btn btn-default'>Submit</button>
</form>
Below is my "form.php" code I am using to send data to the database.
<?php
//PHP Opened
// Insert Data
$username = "username";
$password = "password";
$dbname = "dbname" ;
// Create connection
$con=mysqli_connect("localhost",$username,$password,$dbname);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// From Form
$email = isset($_POST['email']) ? $_POST['email'] : '';
$name = isset($_POST['name']) ? $_POST['name'] : '';
$message = isset($_POST['message']) ? $_POST['message'] : '';
echo '<p>'.$email.'</p>';
$sql="INSERT INTO comment (id, email, name, message)VALUES(null,.$email.,.$name.,.$message.)";
$result = (mysqli_query($con,$sql));
if (false === $result){
echo 'failed';
}
else{
echo 'Record added';
}
mysqli_close($con)
//Close PHP
?>
Upvotes: 1
Views: 151
Reputation: 1532
It is because you did not define an name
attribute for those tags.
New HTML code:
<form method='post' action='form.php'>
<div class='form-group'>
<input type='email' name='email' class='form-control' id='email' placeholder='Email : [email protected]'>
</div>
<div class='form-group'>
<input type='text' name='name' class='form-control' id='name' placeholder='Name : Joe Bloggs'>
</div>
<div class='form-group'>
<input type='textarea' name='message' class='form-control' id='message' placeholder='Message : Hey, can you do this job?'>
</div>
<button type='submit' name='post' class='btn btn-default'>Submit</button>
</form>
Also, you need a bit of fixing in PHP:
<?php
//PHP Opened
// Insert Data
$username = "username";
$password = "password";
$dbname = "dbname" ;
// Create connection
$con=mysqli_connect("localhost",$username,$password,$dbname);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// From Form
if(isset($_POST['post'])) {
$email = isset($_POST['email']) ? $_POST['email'] : '';
$name = isset($_POST['name']) ? $_POST['name'] : '';
$message = isset($_POST['message']) ? $_POST['message'] : '';
echo '<p>'.$email.'</p>';
$sql = "INSERT INTO comment (id, email, name, message) VALUES(null, " . $email . " , " . $name . ", " . $message . ")";
$result = (mysqli_query($con,$sql));
if (false === $result){
echo 'failed';
}
else{
echo 'Record added';
}
}
mysqli_close($con)
//Close PHP
?>
Upvotes: 1