pdo資料物件擴充套件是php訪問資料庫的乙個輕量級介面,pdo 提供了乙個資料訪問抽象層,這意味著,不管使用哪種資料庫,都可以用相同的函式(方法)來查詢和獲取資料。使用quote過濾特殊字元,為sql語句中的字串新增引號,轉為字串
$dbms='mysql'; //資料庫型別
$host='127.0.0.1'; //資料庫主機名
$dbname='test'; //使用的資料庫
$user='root'; //資料庫連線使用者名稱
$pass='123456'; //對應的密碼
$dsn="$dbms:host=$host;dbname=$dbname";
$pdo = new pdo($dsn, $user, $pass); //初始化乙個pdo物件
$username='1 or 1=1';
$username=$pdo->quote($username);
$sql="select * from recorders where id=";
var_dump($sql);exit();
$stmt=$pdo->query($sql);
var_dump($stmt->rowcount());
select * from recorders where id=1 or 1=1
select * from recorders where id='1 or 1=1'
通過預處理語句傳遞引數,防注入
$id='1 or 1=1';
$sql="select * from recorders where id=:id";
$stm=$pdo->prepare($sql);
//陣列中引數的順序與查詢語句中問號的順序必須相同
$stm->execute(array(':id'=>$id));
var_dump($stm->rowcount());
通過bindparam()繫結引數
第三個引數可以指定條件的型別
$id='1 or 1=1';
$sql="select * from recorders where id=:id";
$stm=$pdo->prepare($sql);
$stm->bindparam(':id',$id,pdo::param_int);
//陣列中引數的順序與查詢語句中問號的順序必須相同
$stm->execute();
var_dump($stm->rowcount());
Spring三種注入方式
spring有三種依賴注入的方式,第一種是構造方法注入 12 xx cc ss ppp bean類 public class per public void get 這種方式缺點是在獲取bean物件時,注入資料是必須的操作,否則無法建立,即使是無用的資料也要注入。如果有多個構造方法,每個構造方法只有...
Spring DI三種依賴注入
1.賦值 name為屬性名,value為屬性值 這種方法的依賴注入,底層呼叫的方法是set方法 2.構造器注入 構造方法 在相應的類中需要新增構造方法 如果賦值的資料的8中簡單的型別,使用value,如果是應用型別 除了string 使用ref value屬性值,index為索引對應建構函式中的第幾...
注入的三種方式
依賴注入3種方式 1.set注入 通過set 賦值賦值,預設使用的是 set方法 依賴注入底層是通過反射實現的。2.構造器注入 通過構造方法賦值 需要注意 如果 的順序 與構造方法引數的順序不一致,則需要通過type或者index或name指定。3.p命名空間注入引入p命名空間 xmlns p 簡單...