サーバー上の配列をループしてステートメントをPDOにバインドしようとすると、次のエラーが発生します。
「変数のみを参照で渡すことができます」または「パラメーター2を参照で渡すことはできませんpdo」
ローカルのXAMPPで正常に動作します。
コード:
$sql = rest of sql query etc.
$loop = 1;
foreach ($animal_array $ani)
{
if ($loop == 1) {$sql .= " WHERE animal.id= :animal_id".$loop; }
else {$sql .= " OR animal.id= :animal_id".$loop;}
$loop++;
}
$stmt = $crud->db->prepare($sql);
$loop = 1;
foreach ($animal_array as $ani)
{
$stmt->bindParam(':animal_id'.$loop, $ani['animal_id'], PDO::PARAM_STR);
$loop++;
}
また、私がどこかで連結が時々好まれないことを読んだので、これを最後に試しました:
foreach ($animal_array as $ani)
{
$ref = ":animal_id".$loop;
$stmt->bindParam($ref, $ani['animal_id'], PDO::PARAM_STR);
$loop++;
}
。
編集: 配列には、次のような他の値が含まれています:
$animal_array['animal_id'];
$animal_array['name'];
$animal_array['colour'];
$animal_array['quantity']; etc