为啥我会出现此错误:“数组”第 2 行或附近的语法错误:值数组?

Posted

技术标签:

【中文标题】为啥我会出现此错误:“数组”第 2 行或附近的语法错误:值数组?【英文标题】:Why do I have this ERROR: syntax error at or near "Array" LINE 2: VALUES Array?为什么我会出现此错误:“数组”第 2 行或附近的语法错误:值数组? 【发布时间】:2020-06-30 21:42:30 【问题描述】:

我一直在关注此线程上给出的示例

Why is insert not working and not outputting any error on postresql?

当我尝试在数据库中使用此选项插入多个值时;我遇到了这个错误“错误:在“数组”第 2 行或附近出现语法错误:值数组..”可以帮忙吗?下面是代码:

       …….

       "INSERT INTO people( mom, non, ooo)
      VALUES 
    ($1,   $2,  $3), 
   ($4,   $5,  $6),
   ($7,   $8,  $9),
   ($10, $11, $12)

  ON CONFLICT (mom) DO NOTHING";

   $rcon = pg_query_params($connection, $ins, 
   Array(
   [ $mom ,$non,  $kooo],
   [ $mom 1,$non1,  $kooo1],
   [ $mom 2,$non2,  $kooo2],
   [ $mom 3,$non3,  $kooo3]
       )
   );

   if(!$rcon)
   echo pg_last_error($connection);
       else
            echo "Record added to database</br>"; //success confirmation
      


  This gives this error;  ERROR: bind message supplies 4 parameters, but prepared statement "" requires 12 

【问题讨论】:

【参考方案1】:

您正在为参数绑定提供一组数组。试试这个:

    $rcon = pg_query_params($connection, $ins, 
        [
            $mom,  $non,   $kooo,
            $mom1, $non1,  $kooo1,
            $mom2, $non2,  $kooo2,
            $mom3, $non3,  $kooo3,
        ]
    );

【讨论】:

【参考方案2】:

我看不出数组与您的问题有什么关系。大概,您想插入多行。那将是:

INSERT INTO people( mom, non, ooo)
VALUES 
    ($1,   $2,  $3), 
    ($4,   $5,  $6),
    ($7,   $8,  $9),
    ($10, $11, $12)
ON CONFLICT (mom) DO NOTHING

【讨论】:

我这样做了,结果显示:错误:绑定消息提供 4 个参数,但准备好的语句“”需要 12 个 @Vvictory 在这里回答您的问题,您传递的数组是一个数组数组。去掉Array 中的方括号([]),它应该可以工作。但即使这对你有用,你也做错了。 @MikeOrganek 你能建议一个更好的方法吗?...因为它一直显示绑定消息提供错误。 @Vvictory 请使用您的代码更新和错误消息编辑您的问题。

以上是关于为啥我会出现此错误:“数组”第 2 行或附近的语法错误:值数组?的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql: 在 ""ViewShifts"" 处或附近出现语法错误 为啥我在下面的查询中会出现此错误?

为啥我在意外标记 `(' 附近出现语法错误

为啥我会收到此语法错误? (Python)

第 14 行 '' 附近的 SQL 语法错误

为什么我在“WHERE”附近的查询中出现语法错误? (多个表格)

awk:第 1 行:在或附近出现语法错误,需要一些 bash 帮助 [关闭]