Я продолжаю получать это - Неизвестный столбец 'rec_label' в 'списке полей'

0

вот мой код

<?
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 First Name:</strong><br>
<? echo "$_POST[artist_fn]"; ?>
</p>
</td>

<td valign=top>
<p><strong>Artist 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>
  • 7
    Хорошо, существует ли столбец с именем rec_label в вашей таблице?
  • 1
    Пожалуйста, рассмотрите просто показ фрагмента кода, соответствующего вашей проблеме. Сужение помогает ответчикам быстрее определять проблемы.
Показать ещё 1 комментарий
Теги:

2 ответа

1

Пожалуйста. Используйте mysqli и подготовленные заявления.

<?
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);

?>
1

Скорее всего, есть опечатка, либо в списке полей, либо в имени столбца в базе данных. Или, надеюсь, несколько менее вероятно, столбец фактически не существует.

Дважды проверьте таблицу базы данных.

Однако, хотя это маловероятно, похоже, что здесь была зарегистрирована связанная ошибка (http://bugs.mysql.com/bug.php?id=1689) для MySQL версии 4.0.16. Я сомневаюсь, что это влияет на вы, но это может быть интересно изучить.

  • 0
    Спасибо, вы правы. Я пропустил написание rec_label У меня было написано rec_lable. Извините за беспокойство, но большое спасибо за вашу помощь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню