ОШИБКА ОБНОВЛЕНИЯ JDBC с MySQL — код ошибки 1054

#java #mysql #sql

#java #mysql #sql

Вопрос:

это код

     PreparedStatement res1 = null;
    String insertUser = "INSERT INTO users (uid,firstname,lastname,score) VALUES ("   
                                            this.getFbUid()   ","   
                                            this.getFbFirstName()   ","   
                                            this.getFbLastName()   ",0)";
    System.out.println(insertUser);
    try
    {
        res1 = connection.prepareStatement(insertUser);
        res1.executeUpdate();
        System.out.println("executed query to db with the message"   res1);
    }
    catch(SQLException e)
    {
        System.out.println("setUserInDb: "  e.getMessage());
        System.out.println("error num: "  e.getErrorCode());
    }`
 

Я начинаю понимать error code 1054 :

Неизвестный столбец «Alon» в «списке полей» при попытке вставить строку «ВСТАВИТЬ В ЗНАЧЕНИЯ пользователей (uid, firstname, lastname, score) (123456, Alon, xyz, 0)

В БД у меня есть таблица users со varchar столбцами uid , firstname , lastname , и score .
Что я делаю не так?

Ответ №1:

Alon кажется, или тип varchar должен быть под '

Скорее используйте подготовленную инструкцию

Комментарии:

1. как исправить мою строку в java?

2. Вы неправильно его использовали, смотрите Здесь

Ответ №2:

Как и указал Джигар,

Когда вы вставляете строковые значения в таблицу, вы должны использовать значения внутри одинарных или двойных кавычек (‘ или «). Например, «Привет», «Привет».

Комментарии:

1. Обязательно используйте одинарные кавычки: 'Hello' . Двойные кавычки предназначены для цитирования имен объектов. Я знаю, что MySQL допускает нестандартные кавычки, но нет необходимости использовать его, если также принят стандартный синтаксис.