PDA

View Full Version : Resolved Adding data to a database via a PHP Form


VectorWolf
12-03-2008, 09:26 PM
Okay, I have a form set up with the database ready. But the problem is I get this error when I Submit the form:

ERROR: 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 'join) values ('Fox','Sierra3','Major','Head Training Officer','2008/01/12')' at line 1

Here is the code for my form:
<?php
include 'includes/db_config.php';
?>
<html>
<head>
<title>Add member to roster</title>
</head>
<body>

<?php
if (isset($_REQUEST['submit'])) {
# THIS CODE TELL MYSQL TO INSERT THE DATA FROM THE FORM INTO YOUR MYSQL TABLE
$sql = "INSERT INTO $db_table(name,psn,rank,role,join) values ('".mysql_real_escape_string(stripslashes($_REQUEST['name']))."','".mysql_real_escape_string(stripslashes($_REQUEST['psn']))."','".mysql_real_escape_string(stripslashes($_REQUEST['rank']))."','".mysql_real_escape_string(stripslashes($_REQUEST['role']))."','".mysql_real_escape_string(stripslashes($_REQUEST['join']))."')";
if($result = mysql_query($sql ,$db)) {
echo 'Information added successfully';
} else {
echo "ERROR: ".mysql_error();
}
} else {
?>
<form action="" method="post">
<p>Enter the new member's data:<br /><br/>
Name: <br/><input type="text" name="name" size="20" maxlength="255"
/><br />
PSN: <br/><input type="text" name="psn" size="20" maxlength="255"
/><br />
Rank: <br/><select name="rank">
<option value="Field-Marshal">Field-Marshal</option>
<option value="General">General</option>
<option value="Lieutenant-General">Lieutenant-General</option>
<option value="Major-General">Major-General</option>
<option value="Brigadier">Brigadier</option>
<option value="Colonel">Colonel</option>
<option value="Lieutenant-Colonel">Lieutenant-Colonel</option>
<option value="Major">Major</option>
<option value="Captain">Captain</option>
<option value="Lieutenant">Lieutenant</option>
<option value="2nd Lieutenant">2nd Lieutenant</option>
<option value="Warrant Officer 1st Class">Warrant Officer 1st Class</option>
<option value="Warrant Officer 2nd Class">Warrant Officer 2nd Class</option>
<option value="Staff Sergeant">Staff Sergeant</option>
<option value="Sergeant">Sergeant</option>
<option value="Corporal">Corporal</option>
<option value="Lance Corporal">Lance Corporal</option>
<option value="Private" selected="selected">Private</option>
<option value="Recruit">Recruit</option>
</select>
<br />
Role: <br/><input type="text" name="role" size="20" maxlength="255"
/><br />
Enlistment Date (yyyy-mm-dd): <br/><input type="text" name="join" size="20" maxlength="255"
/><br />
<br/>
<input type="submit" name="submit" value="Add Member" /></p>
</form>
<?php
}
?>
</body>
</html>

I'd greatly appreciate it if anyone can help me with this.

Thanks in advance.

croatiankid
12-03-2008, 10:48 PM
I think the cause of the problem is your usage of a reserved word (http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html), namely join.

Fumigator
12-03-2008, 10:50 PM
"join" is a reserved word in MySQL. Rename your column to something more descriptive.

(you can also put backticks (`) around the column name but save yourself headaches down the road and name your columns without using reserved words.)

(edit: beaten down by croatiankid)

VectorWolf
12-03-2008, 11:09 PM
Thanks alot:thumbsup:

I'm kinda new to PHP/MySQL, So I didn't know "join" was a reserved word. Me being a plank jumping in without reading the documentation xD

Thanks again!:D