Ошибка при INSERT запросе в mysql. Unknown column in 'field list'

111
28 ноября 2020, 17:50

Код:

cur.execute("""INSERT INTO `accounts` (`id`, `user`, `password`)
VALUES (1, {}, {})""".format(user, password))

Вот что получает мускул:

INSERT INTO `accounts`(`id`, `user`, `password`) VALUES (1, asdasd, asd)

Ответ:

1054 - Unknown column 'asdasd' in 'field list'

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

Answer 1

У Вас нет кавычек вокруг текстовых значений - '{}':

cur.execute("""
    INSERT INTO `accounts` (`id`, `user`, `password`)
    VALUES (1, '{}', '{}')
""".format(user, password))

Но это - опасный подход, ведущий к уязвимостям инъекций в базу.

Безопасно, если используете запрос с параметрами:

cur.execute("""
    INSERT INTO `accounts` (`id`, `user`, `password`)
    VALUES (1, %s, %s)
""", (user, password))

Учтите, что в качестве параметров используется кортеж (tuple)

READ ALSO
Система смены пароля пользователя на MySQL

Система смены пароля пользователя на MySQL

Делаю меню смены пароля пользователя на MySQLВ принципе все работает, но если я указываю что бы оно меняло на то что ввёл пользователь в input,...

142
Как воспользоваться $wpdb и работать с БД в своем file.php

Как воспользоваться $wpdb и работать с БД в своем file.php

Подскажите, как этим воспользоваться в filephp, добавленном в папку с темой

129
Загрузка файла (PHP)

Загрузка файла (PHP)

Почему функция записывает в начало возвращаемого файла HTML код моей страницы, а уже потом дописывается сам файлВ чём может быть проблема?...

100
Требуется переработать код для отчёта(canvas) [закрыт]

Требуется переработать код для отчёта(canvas) [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

109