为什么我在第 2 行"Array":值数组或附近有此错误:语法错误?



我正在遵循此线程上给出的示例

为什么插入不起作用并且没有在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

最新更新