代码之家  ›  专栏  ›  技术社区  ›  ronnyrr

PDO准备/执行表并附加WHERE

  •  0
  • ronnyrr  · 技术社区  · 10 年前

    我正在尝试执行以下操作:

    public function checkResult($table, $appends)
    {
        $append = null;
        foreach ($appends as $key => $val)
            $append = " AND `{$key}` = '{$val}'";
    
        $result = $this->fetchObj("
            SELECT  *
            FROM    :cms_table
            WHERE   id :append
        ", array(
            ":cms_table" => $table
            ":append" => $append
        ));
    
        return ($result ? true : false);
    }
    

    但我无法让它工作,因为我不知道如何在PDO中做到这一点。
    当我离开 :append 我的查询也不起作用。看起来我不能执行表。当我改变时 :cms_table cms_pages (我需要表格)它工作正常。

    我在PDO中找不到有关此类查询的任何信息。有谁能帮我吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Your Common Sense    10 年前

    不要试图智胜自己。

    你不需要 checkResult() 并且没有其他类似结构的功能。

    $sql   = "SELECT 1 FROM table WHERE field = ? AND col = ?";
    $found = $db->fetchObj($sql, array(1,2));
    

    是你真正需要的。