This function is useful for bind value on an array. You can specify the type of the value in advance with $typeArray.
* @param string $req : the query on which link the values
* @param array $array : associative array containing the values ??to bind
* @param array $typeArray : associative array with the desired value for its corresponding key in $array
* */functionbindArrayValue($req,$array,$typeArray=false)
{
if(is_object($req) && ($reqinstanceofPDOStatement))
{
foreach($arrayas$key=>$value)
{
if($typeArray)$req->bindValue(":$key",$value,$typeArray[$key]);
else
{
if(is_int($value))$param=PDO::PARAM_INT;
elseif(is_bool($value))$param=PDO::PARAM_BOOL;
elseif(is_null($value))$param=PDO::PARAM_NULL;
elseif(is_string($value))$param=PDO::PARAM_STR;
else$param=FALSE;
if($param)$req->bindValue(":$key",$value,$param);
}
}
}
}/**
* ## EXEMPLE ##
* $array = array('language' => 'php','lines' => 254, 'publish' => true);
* $typeArray = array('language' => PDO::PARAM_STR,'lines' => PDO::PARAM_INT,'publish' => PDO::PARAM_BOOL);
* $req = 'SELECT * FROM code WHERE language = :language AND lines = :lines AND publish = :publish';
* You can bind $array like that :
* bindArrayValue($array,$req,$typeArray);
* The function is more useful when you use limit clause because they need an integer.
* */?>