PHP PDO,預處理方式(PDOStatement物件)實現 增刪改查。防sql注入
阿新 • • 發佈:2019-02-17
demo.php(?號式的預處理sql語句,增刪改):
demo.php(別名式的預處理sql語句,增刪改):<?php //?號式的預處理語句 一共有3種繫結方式 //1.連線資料庫 try{ $pdo = new PDO("mysql:host=localhost;dbname=資料庫名","root","密碼"); }catch(PDOException $e){ die("資料庫連線失敗".$e->getMessage()); } //2.預處理的SQL語句 $sql = "insert into stu(id,name,sex,age) values(?,?,?,?)"; // ?號的方式 $stmt = $pdo->prepare($sql); //3.對?號的引數繫結 //第一種繫結方式 /* $stmt->bindValue(1,null); $stmt->bindValue(2,'test55'); $stmt->bindValue(3,'w'); $stmt->bindValue(4,22); */ //第二種繫結方式 /* $stmt->bindParam(1,$id); $stmt->bindParam(2,$name); $stmt->bindParam(3,$sex); $stmt->bindParam(4,$age); $id=null; $name="test66"; $sex="m"; $age=33; */ //第三種繫結方式 //$stmt->execute(array(null,'test77','22',55)); //第三種繫結方式通過傳引數繫結。 索引陣列 //4.執行 $stmt->execute(); //第一、二種繫結方式不需要傳引數 echo $stmt->rowCount(); //返回受影響的行數
demo.php(預處理SQL執行查詢):<?php //別名式號式的預處理語句 一共有3種繫結方式 //1.連線資料庫 try{ $pdo = new PDO("mysql:host=localhost;dbname=資料庫名","root","密碼"); }catch(PDOException $e){ die("資料庫連線失敗".$e->getMessage()); } //2.預處理的SQL語句 $sql = "insert into stu(id,name,sex,age) values(:id,:name,:sex,:age)"; //別名的方式 $stmt = $pdo->prepare($sql); //3.對別名的引數繫結 //(第一種繫結方式) /* $stmt->bindValue("id",null); $stmt->bindValue("name",'ceshi1'); $stmt->bindValue("sex",'w'); $stmt->bindValue("age",22); */ //第二種繫結方式 /* $stmt->bindParam("id",$id); $stmt->bindParam("name",$name); $stmt->bindParam("sex",$sex); $stmt->bindParam("age",$age); $id=null; $name="ceshi2"; $sex="m"; $age=33; */ //第三種繫結方式 //$stmt->execute(array("id"=>null,"name"=>"ceshi3","sex"=>"w","age"=>66)); //第三種繫結方式通過傳引數繫結。 關聯陣列 //4.執行 $stmt->execute(); //第一、二種繫結方式不需要傳引數 echo $stmt->rowCount(); //返回受影響的行數
<?php //採用預處理SQL執行查詢,並採用繫結結果方式輸出 //1.連線資料庫 try{ $pdo = new PDO("mysql:host=localhost;dbname=資料庫名","root","密碼"); }catch(PDOException $e){ die("資料庫連線失敗".$e->getMessage()); } //2.預處理的SQL語句 $sql = "select id,name,sex,age from stu"; $stmt = $pdo->prepare($sql); //3.執行 $stmt->execute(); $stmt->bindColumn(1,$id); //可以通過1,2,3的方式繫結列 $stmt->bindColumn(2,$name); $stmt->bindColumn("sex",$sex); //也可以通過列名的方式繫結列 $stmt->bindColumn("age",$age); while($row=$stmt->fetch(PDO::FETCH_COLUMN)){ echo "{$id}:{$name}:{$sex}:{$age}<br>"; } /* 不通過繫結列的方式,直接進行遍歷。 foreach($stmt as $row){ echo $row['id']."--------".$row['name']."<br>"; } */