亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

封裝mysqli_Prepare的query函數(shù)

xioqua / 2569人閱讀

摘要:這里的是獲得的準(zhǔn)備的參數(shù),把和放在第一第二個(gè)用這個(gè)解決多參數(shù)的無(wú)問(wèn)題出錯(cuò)的處理這里我返回了,可以用其他顯示結(jié)果記錄數(shù)

使用mysqli_prepare的好處就是,防止注入
原理大致上就是,在執(zhí)行mysqli_prepare的時(shí)候,產(chǎn)生了一個(gè)協(xié)議(函數(shù)),bind_parms和execute相當(dāng)于把值作為參數(shù)送入這個(gè)函數(shù),所以無(wú)論如何都無(wú)法改變代碼的結(jié)構(gòu),就不會(huì)有注入產(chǎn)生。

看了看網(wǎng)上關(guān)于這個(gè)資料還挺少的,不少人竟然用if語(yǔ)句來(lái)判斷參數(shù)封裝。簡(jiǎn)直了。
AND 有時(shí)候我們要改數(shù)據(jù)結(jié)構(gòu),如果綁定結(jié)果集會(huì)有不小的麻煩,我這里把結(jié)果轉(zhuǎn)為了普通mysqli結(jié)果集

請(qǐng)注意:mysqli_stmt_get_result 要求mysqli使用mysqlnd的驅(qū)動(dòng)
不喜歡在PHP上用OOP,所以給出的是Procedural style的代碼。

function query($sql, $type, $data) {
    $stmt=mysqli_prepare($link,$sql); //這里的link是mysqli_connect();獲得的
    array_unshift($data, $stmt, $type);//準(zhǔn)備bind_param的參數(shù),把stmt和type放在第一第二個(gè)
    call_user_func_array("mysqli_stmt_bind_param",$data);//用這個(gè)解決多參數(shù)的無(wú)問(wèn)題

    if(!mysqli_stmt_execute($stmt))
    {
        halt("MySQL Query Error:", $sql);  //出錯(cuò)的處理
    }
    $result=mysqli_stmt_get_result($stmt);//這里我返回了mysqli_result,可以用其他
    mysqli_stmt_close($stmt);
    return $result;
}  
function fetch($result) {
    return mysqli_fetch_array($result, MYSQLI_NUM);
}  
function num_rows($result) {
    return mysqli_num_rows($result);
}  

$myID=1;
$myresult=query("SELECT * FROM my_table WHERE `id`=?","i",array(&$myID));
echo num_rows($myresult);//顯示結(jié)果記錄數(shù)
while($row=fetch($myresult))
{
    print_r($row);
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/26085.html

相關(guān)文章

  • Python Decorator來(lái)龍

    摘要:中的函數(shù)也是對(duì)象,可以作為高階函數(shù)的參數(shù)傳入或返回值返回。因此,當(dāng)代理裝飾的對(duì)象是函數(shù)時(shí),可以使用高階函數(shù)來(lái)對(duì)某個(gè)函數(shù)進(jìn)行封裝。 引言 本文主要梳理了Python decorator的實(shí)現(xiàn)思路,解釋了為什么Python decorator是現(xiàn)在這個(gè)樣子。 關(guān)于代理模式、裝飾模式 設(shè)計(jì)模式中經(jīng)常提到的代理模式、裝飾模式,這兩種叫法實(shí)際上是說(shuō)的同一件事,只是側(cè)重點(diǎn)有所不同而已。 這兩者都是...

    frank_fun 評(píng)論0 收藏0
  • Python Decorator設(shè)計(jì)模式演繹過(guò)程解析

      小編寫這篇文章的一個(gè)主要目的,主要是給大家去做一個(gè)相關(guān)的解答,解答的內(nèi)容主要是涉及到python一些相關(guān)事宜,主要是給大家詳解的是Python Decorator的一些相關(guān)事宜,比如講一下他們的底層原理,關(guān)于設(shè)計(jì)模式演繹過(guò)程,下面就給大家詳細(xì)解答下?! £P(guān)于代理模式、裝飾模式  設(shè)計(jì)模式中經(jīng)常提到的代理模式、裝飾模式,這兩種叫法實(shí)際上是說(shuō)的同一件事,只是側(cè)重點(diǎn)有所不同而已?! ∵@兩者都是通過(guò)在...

    89542767 評(píng)論0 收藏0
  • Node連接MySQL并封裝其增刪查改

    摘要:連接說(shuō)到,可能大家會(huì)想到作為數(shù)據(jù)庫(kù),這里將會(huì)介紹與的連接,并分享了封裝好的實(shí)例代碼,在項(xiàng)目開(kāi)發(fā)中可直接使用。操作查詢添加刪除更新結(jié)束連接這兩種都行,第二種是強(qiáng)制結(jié)束。 showImg(https://segmentfault.com/img/bVbaIlR?w=900&h=500); Node連接Mysql 說(shuō)到node,可能大家會(huì)想到MOngoDB作為數(shù)據(jù)庫(kù),這里將會(huì)介紹node與m...

    Maxiye 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<