我正试着做一个很好的小函数来为我绑定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”。
我需要做什么才能让它给我我想要的?
谢谢你的回复,
这和手动绑定一样安全吗?
在什么情况下您会手动绑定?

最佳答案

不需要这个函数,因为PDOStatement::execute已经支持传入参数数组。简单地做:

$result->execute( $values );

关于php - 如何将函数/常量绑定(bind)到变量,PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11870184/

10-12 05:43