我正在遵循此线程上给出的示例
为什么插入不起作用并且没有在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
您正在为参数绑定提供数组数组。试试这个:
$rcon = pg_query_params($connection, $ins,
[
$mom, $non, $kooo,
$mom1, $non1, $kooo1,
$mom2, $non2, $kooo2,
$mom3, $non3, $kooo3,
]
);
我不明白数组与您的问题有什么关系。大概,您想插入多行。那将是:
INSERT INTO people( mom, non, ooo)
VALUES
($1, $2, $3),
($4, $5, $6),
($7, $8, $9),
($10, $11, $12)
ON CONFLICT (mom) DO NOTHING