我想创建一个动态 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 指令。
我mysql_real_escape_string
尝试将 bindParam 改为 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" . "%";
并且不工作。