2012-12-19 31 views
3

我可以在參數
陣列中的參數創建PDO查詢時

SELECT id, city_id FROM an_objects WHERE city_id IN (:arrCity) 

使用幾行(:arrCity)(1,2,3,4,5,6)

但現在我已經做了這樣的

SELECT id, city_id FROM an_objects WHERE city_id IN (:1p, :2p, :3p, ...... :100p) 

,這是非常糟糕的

+1

您可以動態構造在準備好的聲明的參數列表,使用循環。 – eggyal

回答

3
<?php 

private function PDOBindArray(&$poStatement, &$paArray){ 
    foreach ($paArray as $k=>$v) { 
     @$poStatement->bindValue($k, $v[0], $v[1]); 
    }  
} 

// the array structure should now look something like this 

$inputArray = array(
    ':arrcity' => array($email, PDO::PARAM_STR), 
    ':another_variable' => array($pass, PDO::PARAM_INT) 
); 
?> 
0

以及如何在這種情況下成爲查詢?

WHERE city_id IN (:1p, :2p, :3p, ...... :100p) 

在查詢100個參數
在這種方法中,例如,我們只有5個參數

private function PDOBindArray(&$poStatement, &$paArray){ 
    foreach ($paArray as $k=>$v) { 
     @$poStatement->bindValue($k, $v[0], $v[1]); 
    }  
}