Reputation: 122
Ok, second question in two days... i am probably making a newb mistake here but i am stuck.
trying to insert a domain name into a table under the "name" column. all of my variables echo out so i know they are being passed and set.
the insert is as follows:
$newDomain = $_POST['newDomain']; //Get domain name
$newDomain_query = mysql_query("INSERT INTO virtual_domains (name) VALUES ($newDomain)");
header("Location: domain_detail.php?domain=".$newDomain);
I have tried many ways of writing this script but everytime i get the same result when i include the:
or die(mysql_error)
in the script. the query does not run and when i take out the die part it just jumps to the header location.
Upvotes: 0
Views: 1601
Reputation: 961
Expanding off of Ken's answer, it's a good idea to let mysql handle escaping of the quotes using mysql_real_escape_string (especially for data that is sent via post/get). You can do so with the following:
$newDomain = $_POST['newDomain']; //Get domain name
$newDomainEscaped = mysql_real_escape_string($newDomain);
$newDomain_query = mysql_query("INSERT INTO virtual_domains (name) VALUES ('$newDomainEscaped')");
header("Location: domain_detail.php?domain=".$newDomain);
This will help prevent any errors if someone accidentally has an apostrophe in their "newDomain", or worse any SQL injection.
Upvotes: 1
Reputation: 2748
You need to make sure that you enclose strings with quotes on your insert statement.
Try this instead:
$newDomain = $_POST['newDomain']; //Get domain name
$newDomain_query = mysql_query("INSERT INTO virtual_domains (name) VALUES ('$newDomain')");
header("Location: domain_detail.php?domain=".$newDomain);
Upvotes: 3
Reputation: 71939
You missing quotes around your value. The query should be:
"INSERT INTO virtual_domains (name) VALUES ('$newDomain')"
Upvotes: 1