function db($query, $arr=false){
global $mysqli;
if(!$mysqli or isset($mysqli)){
$mysqli = new mysqli('localhost', 'user', '???', 'db');
$mysqli->set_charset("utf8");
}
$stmt = $mysqli->stmt_init();
if($stmt->prepare($query)){
if(is_array($arr)){
$refarg = array($stmt, str_pad('', count($arr), 's'));
foreach ($arr as $key => $value){
$refarg[] =& $arr[$key];
}
call_user_func_array("mysqli_stmt_bind_param", $refarg);
}
$stmt->execute();
$qb = $stmt->get_result();
if(preg_match("/select (.*)/i", $query)){
if(preg_match("/(.*) limit 1/i", $query)){
$result = mysqli_fetch_array($qb);
}else{
$result = array();
while($arr = mysqli_fetch_array($qb)){
$result[] = $arr;
}
}
}elseif(preg_match("/insert (.*)/i", $query)){
$result = $mysqli->insert_id;
}else{
$result = true;
}
$stmt->close();
}else{
$result = false;
}
return $result;
}
Для mysqli писал когда то функцию. Возможно вам поможет в качестве примера.. В качестве 2 параметра функция принимает массив.