-1
複数の検索パラメータを使用してデータベースを検索しようとしています。しかし、私は常にテーブル全体を出力として取得します。ユーザーは、HTMLフォームの1つ以上のフィールドに情報を入力する必要があります。フォームが送信された後、ユーザーのパラメータに一致するエントリのみが表示されます。私は1つのパラメータしか持っていなかったのでうまくいきました。複数のパラメータを使用したPDOデータベース検索
これは私のコードです:
if (isset($_POST['submit']))
{
try
{
require "../config.php";
require "../common.php";
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT *
FROM medisGO_patient
WHERE lastName LIKE '%" . $lastName . "%'
AND firstName LIKE '%" . $firstName . "%'
AND birthday LIKE '%" . $birthday . "%'
AND course LIKE '%" . $course . "%'
AND id LIKE '%" . $no . "%'";
$lastName = trim($_POST['lastName']);
$firstName = trim($_POST['firstName']);
$course = trim($_POST['course']);
$birthday = trim($_POST['birthday']);
$no = trim($_POST['no']);
$statement = $connection->prepare($sql);
$statement->bindParam(':lastName', $lastName, PDO::PARAM_STR);
$statement->bindParam(':firstName', $firstName, PDO::PARAM_STR);
$statement->bindParam(':birthday', $birthday, PDO::PARAM_STR);
$statement->bindParam(':course', $course, PDO::PARAM_STR);
$statement->bindParam(':id', $no, PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll();
}
catch(PDOException $error)
{
echo $sql . "<br>" . $error->getMessage();
}
}
あなたは –
があなたの '$のsql'はすべきではないプリペアドステートメントに正しく説明書を読んでいません変数 '$ lastName'の代わりに':lastName'のようなバインドを参照していますか?さもなければ、なぜ準備された声明で気にしますかまた、なぜあなたは '$ lastName'のような変数を最初に使われた' SELECT'ステートメントの後に宣言していますか? –
次回、RTM http://php.net/manual/en/pdo.prepared-statements.php –