複数のフォーム フィールドから値を取得し、準備済みステートメントを使用してデータベースにクエリを実行しています。以下のコードは 1 つのフィールドに入力された条件に対して機能しますが、複数のフィールドに入力すると値が返されません。その理由は、ページが最後に入力されたフィールドのみを処理しているためです。前にecho
値を取得すると、値が1つしか取得されません...$params
$results->execute(array($params));
ここに私が持っているものがあります:
<?php
$dbhost = "ip_address";
$dbname = "db_name";
$dbuser = "db_login";
$dbpass = "db_pass";
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$query = "SELECT * FROM tbl_name WHERE 1=1";
foreach ($_POST as $k => $v)
{
if(!empty($v)) {
$query .= " AND $k LIKE ?";
$params[] = '%'.$v;
}
}
$results = $conn->prepare($query);
$results->execute($params);
$results->bindColumn(1, $no);
$results->bindColumn(2, $date);
$results->bindColumn(3, $name);
$results->bindColumn(4, $id);
$results->bindColumn(5, $path);
?>
編集:
上記のコードを作業スクリプトに変更しました