Tasneem Salah Tasneem Salah - 1 year ago 58
MySQL Question

Can't insert new records through PHP into mysql database

When I press the submit button I get error.

object not found error.

And the page automatically adds empty entries with auto incremented primary key (without pressing the submit button).

I am still a beginner in PHP, I searched thoroughly but I can't find out what's wrong in code.

<title>Add New Record in MySQL Database</title>
<form action="insert.php" method="post">

<label for="Name">Full Name:</label>

<input type="text" name="Name" id="Name">

<label for="Code">Code:</label>
<input type="text" name="Code" id="Code">
<label for="GPA">GPA:</label>
<input type="text" name="GPA" id="GPA">
<input type="submit" value="Submit">

/* Attempt MySQL server connection. Assuming you are running MySQL

server with default setting (user 'root' with no password) */

$link = mysqli_connect("localhost", "username", "password", "students");
// Check connection

if ($link === false) {

die("ERROR: Could not connect. " . mysqli_connect_error());
// Escape user inputs for security
$full_name = filter_input(INPUT_POST, 'full_name');
$code = filter_input(INPUT_POST, 'code');
$gpa = filter_input(INPUT_POST, 'gpa');
// attempt insert query execution
$sql = "INSERT INTO info VALUES ('$full_name', '$code', '$gpa')";
if (mysqli_query($link, $sql)) {
echo "Records added successfully. $full_name";
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
// close connection

Answer Source

Try this:

$full_name = filter_input(INPUT_POST, 'Name');
$code = filter_input(INPUT_POST, 'Code');
$gpa = filter_input(INPUT_POST, 'GPA');

The reason why I wrote that is because your input names contain Name, Code and GPA so you need to write this exactly as your input names (case-sensitive).

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download