第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

mysqli bind_param()應(yīng)該是一個(gè)引用,給定值

mysqli bind_param()應(yīng)該是一個(gè)引用,給定值

收到一只叮咚 2019-11-04 09:25:46
無法弄清楚,是什么導(dǎo)致錯(cuò)誤mysqli_stmt :: bind_param()的參數(shù)3有望作為參考,給出的值...PDO$query = "INSERT INTO test (id,row1,row2,row3) VALUES (?,?,?,?)";$params = array(1,"2","3","4");$param_type = "isss";$sql_stmt = mysqli_prepare ($mysqli, $query);call_user_func_array('mysqli_stmt_bind_param', array_merge(array($sql_stmt, $param_type), $params));mysqli_stmt_execute($sql_stmt);也嘗試過OOPOOP$insert_stmt = $mysqli->prepare($query);array_unshift($params, $param_type);call_user_func_array(array($insert_stmt, 'bind_param'), $params);$insert_stmt->execute();但是同樣的錯(cuò)誤,只是現(xiàn)在參數(shù)2引起了問題。那么,$ params有什么問題呢?我需要$ params是值數(shù)組。
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊

這個(gè)答案已經(jīng)過時(shí)了。請?jiān)谳^新的PHP版本(如Stacky回答)中使用傳播運(yùn)算符。


從php docu:


將mysqli_stmt_bind_param()與call_user_func_array()結(jié)合使用時(shí)必須小心。注意,mysqli_stmt_bind_param()要求參數(shù)通過引用傳遞,而call_user_func_array()可以接受可以表示引用或值的變量列表作為參數(shù)。


在mysqli-stmt.bind-param頁面上,您有不同的解決方案:


例如:


call_user_func_array(array($stmt, 'bind_param'), refValues($params));


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;

}


查看完整回答
反對 回復(fù) 2019-11-04
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

在PHP 5.6中引入的,您可以使用...運(yùn)算符(“擴(kuò)展運(yùn)算符”)以較少的麻煩來實(shí)現(xiàn)相同的結(jié)果:


//object-oriented

$sql_stmt->bind_param($param_type, ...$params);


//procedural

mysqli_stmt_bind_param($sql_stmt, $param_type, ...$params);


查看完整回答
反對 回復(fù) 2019-11-04
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

Dunno為什么在代碼中使用單詞“ PDO”,但這是其中唯一正確的單詞。使用PDO,面對mysqli準(zhǔn)備好的語句不會(huì)遇到問題:


$query = "INSERT INTO test (id,row1,row2,row3) VALUES (?,?,?,?)";

$params = array(1,"2","3","4");

$stmt = $pdo->prepare($query);

$stmt->execute($params);

只需看一下這段簡潔的代碼,然后將其與mysqli準(zhǔn)備好的語句與所需的代碼進(jìn)行比較即可。


查看完整回答
反對 回復(fù) 2019-11-04
  • 3 回答
  • 0 關(guān)注
  • 611 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)