2
匹配的參數個數這是我的函數,它創建了事先準備好的聲明:mysqli_stmt ::變量bind_param數不事先準備好的聲明
function query($query, $values_array) {
if ($stmt = $link->prepare($query)) {
for ($i = 1; $i < count($values_array); $i++) {
if (!$stmt->bind_param($values_array[0][$i-1], $values_array[$i])) {
return false;
}
}
if (!$stmt->execute()) {
return false;
}
$result = $stmt->get_result();
$stmt->close();
}
return $result;
}
$查詢
insert into table (var1, var2, var3, var4, var5, var6) values (?, ?, ?, ?, ?, ?)
$ values_array是
array(7) {
[0]=>
string(6) "diisii"
[1]=>
float(9)
[2]=>
int(1)
[3]=>
int(1)
[4]=>
string(5) "now()"
[5]=>
int(1)
[6]=>
int(1)
}
我找不出這個問題,因爲這個錯誤只是綁定參數時插入語句。 Select語句毫無問題地工作!
'now()'不起作用,因爲它作爲文字字符串傳遞。你可以嘗試使用另一個' - > bind_param'簽名來傳遞類型字符串和所有參數,'call_user_func_array(array($ stmt,「bind_param」),$ values_array)' – mario 2013-02-23 16:16:50
離開now()時出現同樣的錯誤。是的,我知道call_user_func_array函數,但是我需要重構我不想做的$ values_array。 – Chris 2013-02-23 16:25:11