mysql: получение ОШИБКИ 1054 при использовании INSERT INTO ... SET для заполнения таблицы - PullRequest
1 голос
/ 01 декабря 2011

попробуй создать блог, используя учебники phpacademy, я столкнулся с проблемой, когда он добавил имя категории в мой mysql, используя php (в этом видео https://www.youtube.com/watch?v=JBcXMVjk83Q)

Автор использует этот код, чтобы поместить название категории в таблицу категорий:

function add_category($name) {
$name = mysql_real_escape_string($name);

mysql_query("INSERT INTO `categories` VALUES `name` = `{$name}`");

}

Но у меня это не сработало (я тестирую его на Debian Squeeze с версией PHP 5.3.3-7 и версией 14.14 Distrib 5.1.49).

Я правильно подключаюсь к mysql и к базе данных, но мы пытаемся выполнить запрос непосредственно в mysql через командную строку, у меня появляется следующая ошибка:

ERROR 1054 (42S22): Unknown column 'uncategorized' in 'field list'

Затем я заметил, что с помощью этого запроса работал:

INSERT INTO categories(name)VALUES('uncategorized');

но я хотел бы знать, есть ли способ использовать тот же метод, который использовался автором, и был ли он лучше, безопаснее, быстрее (или что-либо еще), чем вариант, который я нашел работающим.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Вы используете неправильные кавычки здесь:

mysql_query("INSERT INTO `categories` VALUES `name` = `{$name}`");

Используйте одинарные кавычки:

mysql_query("INSERT INTO `categories` VALUES `name` = '{$name}'");

Данные кадра в одинарных кавычках, а обратные галочки ` используются для маркировки элементов базы данных - таблиц, столбцов и т. Д.

1 голос
/ 01 декабря 2011

Вы можете сделать это

mysql_query("INSERT INTO categories(name) VALUES('$name')");
...