mysql не принимает «?» в качестве оператора привязки

#mysql #node-mysql2

#mysql #узел-mysql2

Вопрос:

Пытаюсь запустить запрос для обновления базы данных, и по какой-то причине MySQL возвращает:

Код ошибки: 1064. У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘?’ в строке 1

Попробовал строку только в SQL, чтобы посмотреть, что произошло

 INSERT INTO eu_profile (id, profileName) VALUES ? 
  

Он также завершается ошибкой с тем же сообщением в коде:

 import * as mysql2  from 'mysql2';
import * from 'mysql2/promise'

/** Lets open the database for mysql2 */
const mysql2connection = mysql2.createConnection({
    "host": "localhost",
    "port": 3306,
    "user": "node",
    "password": "NotTellingYou",
    "database": "stats"
});
mysql2connection.connect(function(error){
    if(!!error){
        console.log(error);
    }else{
        console.log('Connected!:)');
    }
});


    let dbTables: string="";
    let sqlInsert: string="";
    dbTables = "id, profileName";
    sqlInsert = "INSERT INTO eu_profile (" dbTables ") VALUES ?"

    const profileLoad = await mysql2connection.query(sqlInsert, [profileData], function(err) {
        if (err) throw err{
        mysql2connection.end();
        }else
    }).then(console.log("We are done here"));
  

Версия:
введите описание изображения здесь

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

1. Каково содержимое profiledata?

Ответ №1:

Если у вас есть два столбца, вам нужны значения tiw

 INSERT INTO eu_profile (id, profileName) VALUES (?,?) 
  

Также [profileData] требуется 2 значения, такие как [req.body.topic, req.body.note]

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

1. Я ужасно сожалею, скопировал неправильный код, попытался исправить, затем все это запустилось, так что теперь я понятия не имею, что не удалось в прошлый раз. Но, по крайней мере, теперь он кажется счастливым 🙂