動的 SQL ステートメントを作成し、PDO を使用して実行したいと考えています。私の問題は、いくつかのパラメーターがあり、パラメーターを渡す方法が思いつかないことです。元 :
$query = "Select * from tbl_task where 1=1";
if (!empty($name)) $query .= " AND name = ?";
if (!empty($status)) $query .= " AND status = ?"
$db_stmt = new PDOStatement();
$db_stmt = $this->db->prepare($query);
$db_stmt->bindParam (1,$name);
$db_stmt->bindParam (2,$status);
同じ if ステートメントを bindParam 命令で記述しない限り、パラメーターがバインドされず、バインドする必要があるパラメーターの数がわかりません。
代わりにbindParammysql_real_escape_string
を PDO に試してみましたが、何らかの理由でパラメーターが空で追加されました。
動的クエリを作成してパラメーターを PDO にバインドする方法について何か考えはありますか?
編集1:
$arr = array();
if (!empty($name)){
$query .= " AND `name` like :NAME";
$arr['NAME'] = $name;
}
$db_stmt = new PDOStatement();
$db_stmt = $this->db->prepare($query);
$db_stmt->execute($arr);
「いいね」の書き方は?私は試した
$query .= " AND `name` like :NAME" . "%";
動作していません。