Postgresql с узлом (столбец "" не существует -> синтаксическая ошибка в или рядом с ",") - PullRequest
0 голосов
/ 11 октября 2018

У меня небольшая проблема, касающаяся вставки в PostgreSQL.Проблема, с которой я не сталкивался раньше, поскольку у меня есть подобные вставки, которые работают просто отлично.Я получаю req.body из почтового запроса, откуда я вставляю все в правильные таблицы в PostgreSQL, это один из операторов .then внутри db.task.

Когда мой код прибывает в эту часть, я получаю сообщение об ошибке "имя столбца" не существует ", если имя в req.body.org -" имя ".

Если я отправляю пустую строку, я получаю ошибку «синтаксическая ошибка в или около», «. Я использовал ту же практику при обработке аналогичных почтовых запросов без каких-либо ошибок. Я также пытался консольной регистрации базы данных.one задачи вместо его вставки, и он возвращает все правильные ответы, соответствующие объекту массива "org". Таким образом, он возвращает все правильно, но по какой-то причине я продолжаю получать ошибку. Я пытаюсь отладить это в течение нескольких дней, нобезрезультатно. Я надеюсь, что кто-то здесь может помочь мне.

Заранее спасибо, ребята! Br, Виктор

"org": [
    {
        "firtsname": "name",
        "lastname": "testA",
        "orcid": "testB",
        "rooli": "testC",
    }
],




.then((id: any) => {
return db.one("INSERT INTO org (id, firstname, lastname, persid, role)" + 
 "values (" + JSON.parse(id.id) + ", " + req.body.org.map((e: any) => e.firstname) + 
 ", " + req.body.org.map((s: any) => s.lastname) + ", " + req.body.org.map((x: any) 
 => x.persid) + ", " + req.body.org.map((y: any) => y.role) + ") RETURNING id");  

})

1 Ответ

0 голосов
/ 11 октября 2018

перед «значениями» должен быть пробел

persid, role)" + 
 " values ("

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

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

Пожалуйста, попробуйте использовать подготовленные операторы, не будет никаких накладных расходов при соблюдении этих родных для БД вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...