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() ;
}

但它不起作用。如果我 echo $bindType,它会出现为“1”,然后是“2”。

我需要做什么才能让它给我我想要的东西?


感谢您的回复,

这和手动绑定一样安全吗?

在什么情况下你会手动绑定?

4

1 回答 1

3

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

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