[英]About PHP prepared statement
我正在努力實現執行准備好的語句的簡單功能。 現在我有一個問題:
class mysqli_extend extends \mysqli{
function pquery(){
$input = func_get_args();
if ($stmt = parent::prepare($input[0])){
$input = array_slice($input,1);
$index = count($input);
if ($index){ //non-0 == true, 0 == false
$typestr = '';
while ($ele = current($input)){
$type = gettype($ele);
switch($type) {
case "integer": $typestr .= 'i'; break;
case "double": $typestr .= 'd'; break;
case "string": $typestr .= 's'; break;
default: $typestr .= 'b'; break;
}
next($input);
}
array_unshift($input,$typestr);
//output to console checking array content
while ($ele = current($input)){
echo key($input) . ":" . $ele . "\t";
next($input);
}
call_user_func_array(array($stmt,'bind_Param'),$input);
}
$stmt->execute();
}
return true;
}
}
這是要執行的命令:
$test = $mysqli_extend->pquery('UPDATE user_list SET upriv = ? WHERE uname =?','moderator','admin');
雖然echo語句為我提供了數組的正確內容“ 0:ss 1:moderator 2:admin”,但我收到以下錯誤:“警告:mysqli_stmt :: bind_param()的參數2應該是引用”
因為對於最新的php版本,它具有問題“致命錯誤:調用時傳遞引用已被刪除”
請問是否有解決此問題的方法?
感謝ryan vincent,通過該鏈接我可以進行臨時工作,盡管我沒想到將來會這樣:
foreach($input as $k => &$arg){
$Args[$k] = &$arg;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.