Php 在DB PDO中插入值字符串
我正在尝试执行此查询,该查询返回false,并显示消息“INSERT的目标列比我理解的表达式多”,但是否有方法将数组或字符串与我要插入的值一起使用?我正在使用带有PDO的postgresPhp 在DB PDO中插入值字符串,php,postgresql,pdo,Php,Postgresql,Pdo,我正在尝试执行此查询,该查询返回false,并显示消息“INSERT的目标列比我理解的表达式多”,但是否有方法将数组或字符串与我要插入的值一起使用?我正在使用带有PDO的postgres $params = '"param1", "param2", "param3", "param4", "param5"'; $query = $conn->query = 'INSERT INTO myTable ( "value1", "val
$params = '"param1", "param2", "param3", "param4", "param5"';
$query = $conn->query = 'INSERT INTO myTable (
"value1",
"value2",
"value3",
"value4",
"value5") VALUES(:params)';
$query->execute(array('params' => $params));
在您的代码中,语句只有
value1
列的一个参数,其值为'“param1”、“param2”、“param3”、“param4”、“param5”
,然后消息说此请求需要value2
、value3
、value4
、value5
列的值
您可以尝试使用以下代码:
// using named placeholders
$params = array(
"param1" => "param1",
"param2" => "param2",
"param3" => "param3",
"param4" => "param4",
"param5" => "param5"
);
$query = $conn->query = '
INSERT INTO myTable ("value1", "value2", "value3", "value4", "value5")
VALUES(:value1, :value2, :value3, :value4, :value5)
';
$query->execute($params);
// using unnamed placeholders
$params = array("param1", "param2", "param3", "param4", "param5");
$query = $conn->query = '
INSERT INTO myTable ("value1", "value2", "value3", "value4", "value5")
VALUES(?, ?, ?, ?, ?)
';
$query->execute($params);
文档:您试图将输入作为数据和代码的混合体处理。这正是事先准备好的声明所要避免的。它们的主要目的是从代码中分离数据。真正的问题是$params是如何以这种格式出现的。您应该阅读以了解准备语句的正确用法。上面的代码片段有太多的问题。好的,我将尝试阅读手册,然后编辑代码片段以使其更合适。