【问题标题】:pass PDO bindParam type in array在数组中传递 PDO bindParam 类型
【发布时间】:2011-01-11 16:41:39
【问题描述】:

我正在尝试将参数约束从数组传递给 PDO,即

 public function write($sql,$bindparams=''){
    try{
        $stmt = $this->db_connection->prepare($sql);
        if($bindparams != '' && is_array($bindparams)){
            foreach($bindparams as $k){
                $b = $k[0]; //parameter to bind to
                $v = $k[1]; //the value
                $c = $k[2]; //the parameter constraint(i.e. PDO::PARAM_STR)
                $stmt->bindParam($b,$v,$c);
            }
        $stmt->execute();
        }
    }
    catch(PDOException $e){
        echo 'Error acquiring data: '.$e->getMessage();
        exit();
    }
}

但是,它似乎窒息 - 如果我将常量传递给它,该函数会接收整数,并且它不会接受字符串描述

【问题讨论】:

  • 嗨,我想用这个。如何使用此功能?我将只传递带有占位符示例INSERT INTO table VALUES(:var1) 然后第二个参数array(':var1'=>'var1value') 的sql 语句,对吗?
  • 是的,没错 - 主要是你必须将 :var 占位符放在你的 sql 字符串中

标签: parameters pdo named-parameters


【解决方案1】:

对不起,self::fail()

传递给函数的参数与目标表不匹配 - 仍然,方法有效!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2016-04-14
    • 1970-01-01
    • 2023-03-28
    • 2014-10-05
    • 2010-10-24
    • 2011-04-13
    相关资源
    最近更新 更多