【发布时间】:2018-04-06 00:43:51
【问题描述】:
如何在数据库 PDO 中插入此查询?
public function insertPessoa($estado){
$this->$estado = $estado;
echo "<pre>";
$linkDeputados =
file_get_contents('https://dadosabertos.camara.leg.br/api/v2/deputados?siglaUf='.$estado.'&ordem=ASC&itens=100&ordenarPor=nome&pagina=1');
$json = json_decode($linkDeputados);
$deputados = (object) $json;
$connectar = new PDO("pgsql:host=localhost; dbname=postgres", "postgres", "123456");
foreach ($deputados->dados as $objeto => $o)
{
$sql = " INSERT INTO deputados
( id,
'nome',
'estado',
'web_partido',
'sigla_partido',
'url_foto'
)
VALUES
(
{$o->id},
'{$o->nome}',
'{$o->siglaUf}',
'{$o->uriPartido}',
'{$o->siglaPartido}',
'{$o->urlFoto}'
)";
}
$query = $connectar->prepare($sql);
$query->bindValue(':id', $o->id);
$query->bindValue(':nome', $o->nome);
$query->bindValue(':estado', $o->siglaUf);
$query->bindValue(':web_partido', $o->uriPartido);
$query->bindValue(':sigla_partido', $o->siglaPartido);
$query->bindValue(':url_foto', $o->urlFoto);
$query->execute();
if($query){
echo 'Registro Inseridos com Sucesso!<br>';
}
}
这给我一个错误:
警告:PDOStatement::bindValue(): SQLSTATE[HY093]: 无效 参数号::id in C:\xampp\htdocs\pesquisaDeputados\pessoa.class.php 第 79 行
【问题讨论】:
-
这个函数是一个类的一部分,你是否在每个函数中创建一个新的 pdo 连接,isso que você está fazendo?
-
是的,这个功能是我班级的一部分,我也使用 de PDO 连接来实现其他功能......这是错误的吗?
-
我认为
foreach循环应该在$query->execute();之后关闭,而不是在$query = $connectar->prepare($sql);之前关闭 -
您应该为数据库连接创建一个新类,然后将连接注入您的类,这样您就不会一遍又一遍地创建新连接。蟒蛇排序。