用多个where条件构建动态mysql查询

时间:2016-07-23 12:48:24

标签: php mysql

我有以下查询,它工作正常。 但如果$where是数组,它将失败,解决方案是什么?

 public function update($tbl_name, $data = NULL, $where = NULL)
{

    if ($data) {

        $data_key = array_keys($data);
        $where_key = array_keys($where);

        $query = "UPDATE " . $data['db_table'] . " SET ";
        foreach ($data_key as $key) {
            $query .= "`" . $key . "` = '" . $data[$key] . "' ";
        }
        //todo fix that for multi where
        $query.=" WHERE `".$where."`=".$where[''];
        return $this->query($query);
    }
    return false;
}

1 个答案:

答案 0 :(得分:2)

你确实意识到这是一件相当危险的事情吗?数据库被某人输入意外的东西所造成的可能性太大了。至于where子句,您可以从is_array

获得帮助
IFindReplaceTarget

这里的另一个问题是永远不会结束这种性质的字符串连接导致很难追踪错误。