php mysqli擴充之預先處理

來源:互聯網
上載者:User

標籤:

  在前一篇 mysqli基礎知識中談到mysqli的安裝及基礎操作(主要是單條sql語句的查詢操作),今天介紹的是mysqli中很重要的一個部分:預先處理。

  在mysqli操作中常常涉及到它的三個主要類:MySQLi類,MySQL_STMT類,MySQLi_RESULT類。預先處理主要是利用MySQL_STMT類完成的。

  預先處理是一種重要的 防止SQL注入的手段,對提高網站安全性有重要意義。

  本文案例為 資料庫名為test,資料表名為test,  欄位有id ,title 兩個,id自增長主鍵。

 

  使用mysqli預先處理執行插入操作:

<?php define("HOST", "localhost");define("USER", ‘root‘);define("PWD", ‘‘);define("DB", ‘test‘);$mysqli=new Mysqli(HOST,USER,PWD,DB);if ($mysqli->connect_errno) {    "Connect Error:".$mysqli->connect_error;}$mysqli->set_charset(‘utf8‘);$id=‘‘;$title=‘title4‘;//用?代替 變數$sql="INSERT test VALUES (?,?)";//獲得$mysqli_stmt對象,一定要記住傳$sql,預先處理是對sql語句的預先處理。$mysqli_stmt=$mysqli->prepare($sql);//第一個參數表明變數類型,有i(int),d(double),s(string),b(blob)$mysqli_stmt->bind_param(‘is‘,$id,$title);//執行預先處理語句if($mysqli_stmt->execute()){    echo $mysqli_stmt->insert_id;}else{    echo $mysqli_stmt->error;}$mysqli->close();

使用mysqli預先處理防止sql注入:

$id=‘4‘;$title=‘title4‘;$sql="SELECT * FROM test WHERE id=? AND title=?";$mysqli_stmt=$mysqli->prepare($sql);$mysqli_stmt->bind_param(‘is‘,$id,$title);if ($mysqli_stmt->execute()) {    $mysqli_stmt->store_result();    if($mysqli_stmt->num_rows()>0){        echo "驗證成功";    }else{        echo "驗證失敗";    }}    $mysqli_stmt->free_result();    $mysqli_stmt->close();

使用mysqli預先處理執行查詢語句:

$sql="SELECT id,title FROM test WHERE id>=?";$mysqli_stmt=$mysqli->prepare($sql);$id=1;$mysqli_stmt->bind_param(‘i‘,$id);if($mysqli_stmt->execute()){    $mysqli_stmt->store_result();
//將一個變數綁定到一個prepared語句上用於結果儲存 $mysqli_stmt->bind_result($id,$title); while ($mysqli_stmt->fetch()) { echo $id.‘ :‘.$title.‘<br/>‘; }}

    更多mysqli技術請參見php官方手冊,查手冊是學習的最好方法~

 

php mysqli擴充之預先處理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.