私は、PHP サイト全体でそれらの実装を開始できるように、準備されたステートメントを学習しようとしています。この関数は、$_POST 転送メソッドを使用して検索フォームのテキスト ボックスから値 (または値なし) を取得し、それらのテキスト ボックスの名前と値を使用して WHERE 句に基準を追加します。関数は以前は機能していましたが、準備されたステートメントを機能させることができないようです。
いくつかのスクリプトを調査して、以下のスクリプトを使い始め、いくつかのバグを解決しました。実行すると、mysqli_stmt::bind_param() のパラメーター数が間違っていますというエラーが表示されます
このクエリを実行した後、値をテーブルにエクスポートしたいのですが、準備されたステートメントを試みる前に作業していました。
これが私がこれまでに持っているコードです:
<?php
$db = mysqli_connec("ip_address", "loginname", "password", "database");
$refs = array('sssss');
foreach ($_POST as $key => $value)
{
$refs[] =& $_POST[$key];
}
$query = "SELECT col1, col2, col3, col4, col5 FROM tbl_name WHERE 1=1";
foreach ($_POST as $k => $v)
{
if(!empty($v)) {
$query .= " AND $k = ?";
$params[$k] = $v;
}
}
$results = $db->prepare($query);
call_user_func_array(array($results, 'bind_param'), $refs);
$results->execute();
?>