Ich weiß nicht warum, aber das funktioniert nicht.mysqli_stmt :: bind_param() erwartet Parameter 1 als String, Array als gegeben [Gelöst]
array_unshift($params,$types);
if($stmt = $conn->prepare($sql)){
call_user_func_array(array($stmt, 'bind_param'), refValues($params));
$stmt->execute();
Jetzt heißt es:
Warnung: mysqli_stmt :: bind_param() erwartet Parameter 1 Zeichenfolge, Array gegeben zu sein ...
Also, was mit diesem Code ist fehlerhaft ?
function refValues($arr){
if(strnatcmp(phpversion(),'5.3') >= 0){ //Reference is required for PHP 5.3
$refs = array();
foreach($arr as $key => $value){
$refs[$key] = &$arr[$key];
}
return $refs;
}
return $arr;
}
Die print_r von refValues ($ params);
Array ([0] => Array ([0] => i [1] => i [2] => i [3] => i [4] => i [5] => i [6] => i [7] => i [8] => i [9] => s [10] => i [11] => i [12] => i [13] => i [14] => i [15] => i [16] => i [17] => i [18] => i [19] => i [20] => i [21] => i) [1] => 1 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 1241 [9] => [10] => [11] => 1 [12] => [13] => [14] => [15] => 432 [16] => 243 [17] => 0 [18] => 0 [19] => 0 [20] => 0 [21] => 0 [22] => 78)
Hier ist die Lösung: ich nur die $types
Array implodieren hatte. Also dann ist der erste Parameter ein String und kein Array mehr.
und was den Fehler ist nicht klar genug macht? – hassan
@hassan Welches ist "Parameter 1"? – pandaNine
@pandaNine 'refValues ($ params)'. – BenM