如何在PHP SQL查询中替换多个占位符

时间:2016-05-13 16:39:46

标签: php sql

如果标题措辞奇怪,请注意。这是我第一次在这里问什么,而且我对PHP很陌生,所以我很难搞清楚这一点。

基本上,我正在尝试编写一个PHP脚本,允许我从我们的网站更改某个游戏实例的规则,所以我不必每次都进入数据库并运行SQL查询

这是我到目前为止所做的:

public function update_rules() 
    {
        $rules = $this->input->post('rules');
        $domains = $this->input->post('domains_multiselect');

        $qarr = array();
        $sql = "
                    UPDATE domains
                    SET rules = ?
                    WHERE domain_id = ?
                  ";

        $qarr[] = $rules;
        $qarr[] = $domain_id;

        $query = $this->db->query($sql,$qarr);

        redirect ("admin/insert_rules");

    }

我不确定如何通过substr_replace()更改"?"查询中的占位符能够输入手动键入的规则和domain_id,我认为这将在选择域名时生成。

我可以完全离开这里,但如果有人能指出我某种方向,那就太棒了。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用命名占位符或位置相关占位符...

//Position dependent: 
$stmt = $this->db->prepare("UPDATE domains SET rules = ? WHERE domain_id = ?");
$stmt->bindParam(1, $rules);
$stmt->bindParam(2, $domain_id);
$stmt->execute();

//Named Placeholder: 
$stmt = $this->db->prepare("UPDATE domains SET rules = :rules WHERE domain_id = :domain");
$stmt->bindParam(':rules', $rules);
$stmt->bindParam(':domain', $domain_id);
$stmt->execute();