tags:

views:

26

answers:

2

here is my code

<?
if ((!$_POST['id']) || (!$_POST['format']) || (!$_POST['title'])) {
header ("Location: /show_addrecord.html");
exit;
}
$db_name = "testdb2";
$table_name = "my_music";
$connection = @mysql_connect ("localhost", "spike", "9sj7En4")
or die (mysql_error());
$db = @mysql_select_db ($db_name, $connection) or die(mysql_error());

//create SQL statement and issue query
$id = mysql_escape_string($_POST['id']);
$format = mysql_escape_string($_POST['format']);
$title = mysql_escape_string($_POST['title']); 
$artist_fn = mysql_escape_string($_POST['artist_fn']);
$artist_ln = mysql_escape_string($_POST['artist_ln']);
$rec_label = mysql_escape_string($_POST['rec_label']);
$my_notes = mysql_escape_string($_POST['my_notes']);
$date_acq = mysql_escape_string($_POST['date_acq']);

$sql = "INSERT INTO $table_name
(id, format, title, artist_fn, artist_ln, rec_label, my_notes, date_acq) VALUES
('$_POST[id]',
'$_POST[format]',
'$_POST[title]',
'$_POST[rec_label]', 
'$_POST[artist_fn]',
'$_POST[artist_ln]',
'$_POST[my_notes]',
'$_POST[date_acq]')";
$result = @mysql_query($sql, $connection) or die(mysql_error());
?>

<html>

<head>
<title>Add a Record</title>

</head>

<body>
<table cellspacing=3 cellpadding=3>
<tr>
<td valign=top>
<p><strong>ID:</strong><br>
<? echo "$_POST[id]"; ?></p>
</td>

<td>
<p><strong>Date Acquired (YYYY-MM-DD):</strong><br>
<? echo "$_POST[date_acq]"; ?></p>
</td>

<td valign=top>
<p><strong>Format:</strong><br>
<? echo "$_POST[format]"; ?>
</p>
</td>
</tr>

<tr>
<td valign=top>
<p><strong>Title:</strong><br>
<? echo "$_POST[title]"; ?></p>
</td>

<td valign=top>
<p><strong>Record Label</strong><br>
<? echo "$_POST[rec_label]"; ?></p>
</td>
</tr>

<td valign=top>
<p><strong>Artist's First Name:</strong><br>
<? echo "$_POST[artist_fn]"; ?>
</p>
</td>

<td valign=top>
<p><strong>Artist's Last Name:</strong><br>
<? echo "$_POST[artist_ln]"; ?></p>
</td>
</tr>

<tr>
<td valign=top colspan=2 align=center>
<p><strong>My Notes:</strong><br>
<? echo stripslashes($_POST[my_notes]); ?></p>

<p><a href="show_addrecord.html">Add Another</a></p>
</td>
</tr>
</table>

</body>

</html>
+1  A: 

Most likely, there is a typo, either in the field list, or in the name of the column in the database. Or, hopefully somewhat less likely, the column actually doesn't exist.

Double check your database table.

However, while unlikely, it does appear that there has been a related bug reported here (http://bugs.mysql.com/bug.php?id=1689) for MySQL version 4.0.16 I doubt that this affects you, but it may be worth looking into.

jordanstephens
Thanks, you are correct. I overlooked the spelling of rec_label I had it spelled rec_lable. Sorry for the bother, but thank you so much for your help
William Grider
+1  A: 

Please. Use mysqli and prepared statements.

<?
if ((!$_POST['id']) || (!$_POST['format']) || (!$_POST['title'])) {
  header ("Location: /show_addrecord.html");
  exit;
}

$db_name = "testdb2";
$table_name = "my_music";
$connection = @mysqli_connect("localhost", "spike", "9sj7En4") or die (mysqli_error());
$db = @mysqli_select_db($connection, $db_name) or die(mysqli_error());

// BTW, using $tablename here is also wrong on several levels. Avoid.
$sql = "
  INSERT INTO $table_name
  (id, format, title, artist_fn, artist_ln, rec_label, my_notes, date_acq) VALUES
  (?,?,?,?,?,?,?,?)
";

$stmt = mysqli_prepare($connection, $sql);

mysqli_stmt_bind_param($stmt, "ssssssss", 
  $_POST['id'],
  $_POST['format'],
  $_POST['title']),
  $_POST['artist_fn'],
  $_POST['artist_ln'],
  $_POST['rec_label']),
  $_POST['my_notes'],
  $_POST['date_acq']
);

$result = @mysqli_stmt_execute($connection, $sql) or die(mysqli_error());

mysqli_stmt_close($stmt);

?>
Tomalak