关于PHP准备的声明

我正在寻找一个简单的函数来执行准备好的语句。 现在我遇到了一个问题:

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');

而回声声明给了我一个正确的内容数组“0:ss 1:主持人2:管理员”我预计错误:“警告:参数2到mysqli_stmt :: bind_param()应该是一个参考”

因为对于最新的PHP版本,它有问题“致命错误:呼叫时传递参考已被删除”

请问是否有解决此问题的解决方法?


感谢瑞安·文森特,继链接之后,我得到了临时工作,尽管我没有想到这将在未来工作:

foreach($input as $k => &$arg){
    $Args[$k] = &$arg;
}
链接地址: http://www.djcxy.com/p/44881.html

上一篇: About PHP prepared statement

下一篇: mySQLi prepared statement unable to get