为啥我会出现此错误:“数组”第 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"" 处或附近出现语法错误 为啥我在下面的查询中会出现此错误?