好的,我有一个名为sendQuery的函数,可以发送您的查询。 我知道如何使用BindParams,但我真的想不出一种方法可以使它在execute中使用绑定值。
这是代码:
public function sendQuery($query, array $value, $do_fetch)
{
$query_process = $this->db->prepare($query);
if(!$query_process->execute($binds))
{
throw new excpetion ("An error has occured!");
}
$this->insert = $this->db->lastInsertId();
$this->row_count = $query_process->rowCount();
if($fetch == true)
{
return $query_process->fetchAll();
}
}
如您所见,它以$ binds执行,
像(WHERE user =?)一样工作,但我想发送这样的查询: (WHERE user =:user)而不是'? ',以及其中的多个。
我该怎么做?
答案 0 :(得分:1)
你必须完全一样。
只需摆脱无用的代码并使用一致的变量命名
public function sendQuery($query, array $binds, $do_fetch)
{
$stm = $this->db->prepare($query);
$stm->execute($binds);
$this->insert = $this->db->lastInsertId();
$this->row_count = $stm->rowCount();
if($do_fetch)
{
return $stm->fetchAll();
}
}
$sql = "SELECT * FROM t WHERE c1=:name AND c2=:age";
$param = array ("name" => $name,"age" => $age);
$data = $db->sendQuery($sql, $data, 1);
然而,我会创建一组函数而不是单个函数:
它可能非常方便