1

PDO私は私のために私のバインディングを行うための素敵な小さな関数を作ろうとしています:

function autoBind($result, $values)
{
$i = 1 ;
foreach($values as $currentValue) {
    if(is_numeric($currentValue))
    {
        $bindType = PDO::PARAM_INT ;
    }
    elseif(is_string($currentValue) || is_float($currentValue))
    {
        $bindType = PDO::PARAM_STR ;
    }
    else
    {
        return false ; // Error
    }
    $result->bindParam($i, $currentValue, $bindType) ;
    $i++ ;
}
$result->execute() ;
}

しかし、それは機能していません。エコー$bindTypeすると「1」、「2」の順に出てきます。

私が欲しいものを私に与えるために私は何をする必要がありますか?


返信ありがとうございます、

これは手動でバインドするのと同じくらい安全ですか?

どのような状況で手動でバインドしますか?

4

1 に答える 1

3

PDOStatement::executeはすでにパラメーターの配列の受け渡しをサポートしているため、この関数は必要ありません。単に行う:

$result->execute( $values );
于 2012-08-08T17:53:33.880 に答える