參考陣列我有一個類似的問題,這樣的問題作者:PHP 7.0的mysqli - 爲call_user_func_array
MySQLI binding params using call_user_func_array
但我的問題得到重複的標籤之前,該解決方案並沒有爲我工作了。
這實際上是我的代碼:
// in classfoodao.php
function updateClassfoo(Classfoo $classfoo){
$values = array();
global $conn,$f;
$pattern = "";
/* updateFields get all defined attributes in classfoo object and then write in the $sql string
* A prepared statement only for the not null attribs,
* and also put the attribs in the same order in the $values array.
* The same are done for the $pattern string.
* $values and $pattern are passed by reference.
*/
$sql = $classfoo->updateFields($values, $pattern);
if (!empty($values) && !empty($pattern)) {
$stmt = $conn->prepare($sql);
$temp = array($pattern);
for ($i = 0, $count = count($values); $i < $count; $i++) {
$addr = &$values[$i];
array_push($temp, $addr);
}
call_user_func_array(array($stmt, "bind_param"), $temp);
} else {
return true;
}
}
我仍然得到這個警告:
PHP Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given
與錯誤以下:
Execute failed on update: (2031) No data supplied for parameters in prepared statement
我沒有使用任何框架對於PHP,我如何創建一個引用數組來解決這個問題?
我不認爲我們在這裏得到完整的圖片...你在哪裏調用' - > bind_param()'方法 –
除了@SamuelCook的建議,它將是非常有用的,看看什麼'$值'是'ie和數組或字符串'以及'$ temp'是如何使用的,推測是一個bind_param調用。 – TheDude
請提供您調用bind_param()的代碼。否則,我們無法幫助你。 – iquellis