pdo
1.訪問不同的資料庫
2.自帶事務功能
3.防止sql注入
這下面是訪問和自帶的事務功能展示,
>無標題文件
title
>
head
>
<
body
>
php/*//1.造物件
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new pdo($dsn,"root","123");
//2.寫sql語句
$sql = "update nation set name='獸族' where code='n013'";
//3.執行sql語句
//$r = $pdo->query($sql);
$r = $pdo->exec($sql);*/
//事務功能
//造物件
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new pdo($dsn,"root","123");
//設定異常模式
$pdo->setattribute(pdo::attr_errmode,pdo::errmode_exception);
//寫sql語句
$sql1 = "insert into nation values('n016','人族')";
$sql2 = "insert into nation values('n017','不死族')";
//執行兩條sql語句
trycatch(pdoexception $e)
?>
body
>
html
>
這下面是防止sql注入展示第一種方法 問號佔位
>無標題文件
title
>
head
>
<
body
>
php//造物件
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new pdo($dsn,"root","123");
//寫sql語句,預處理語句
$sql = "insert into nation values(?,?)";
//準備sql語句,返回statement物件
$st = $pdo->prepare($sql);
//繫結引數
/*$st->bindparam(1,$code);
$st->bindparam(2,$name);
$code="n022";
$name="矮人族";*/
$attr = array("n023","魔族"); //直接扔就可以了!
//提交執行,不用給sql語句了,已經傳過去了
var_dump($st->execute($attr));
//預處理語句裡面用?佔位的,給陣列的時候要給索引陣列
?>
body
>
html
>
另一種方法名稱佔位
>無標題文件
title
>
head
>
<
body
>
php//造物件
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new pdo($dsn,"root","123");
//寫sql語句,預處理語句,使用name佔位
$sql = "insert into nation values(:code,:name)"; //注意用前面加冒號!!
//準備執行
$st = $pdo->prepare($sql);
//繫結引數
/*$st->bindparam(":code",$code,pdo::param_str);
$st->bindparam(":name",$name,pdo::param_str);
$code="n024";
$name="狼族";*/
$attr = array("code"=>"n025","name"=>"蟲族");
//執行
$st->execute($attr);
?>
body
>
html
>
最後是名稱佔位的好處
php//造物件最後是查詢!!$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new pdo($dsn,"root","123");
//寫sql語句,預處理語句,使用name佔位
$sql = "insert into nation values(:code,:name)";
//準備執行
$st = $pdo->prepare($sql);
//執行
$st->execute($_post); 這個post 和提交的一樣直接就賦值了!
>無標題文件
title
>
head
>
<
body
>
php//造物件
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new pdo($dsn,"root","123");
//寫sql語句,預處理語句
$sql = "select * from nation";
//準備執行
$st = $pdo->prepare($sql);
//執行
$st->execute();
//讀資料
var_dump($st->fetchall(pdo::fetch_assoc));
?>
body
>
html
>
PDO防止sql注入原理
pdo new pdo mysql host localhost dbname test user pwd sql insert into user name,age values 號的方式 pdo setattribute pdo attr emulate prepares,false pdo有一...
防止SQL注入
1.什麼是sql注入 所謂sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通過遞交引數構造巧妙的sql語句,從而成功獲取想要的資料。2.sql注入的種類 從具體而言,sql注入可分為五大類,分別是 數字型注入 字元型注入...
防止SQL注入
最近看到很多人的 都被注入js,被iframe之類的。非常多。本人曾接手過乙個比較大的 被人家入侵了,要我收拾殘局。1.首先我會檢查一下伺服器配置,重新配置一次伺服器安全,可以參考 2.其次,用麥咖啡自定義策略,即使 程式有漏洞,別人也很難在檔案上寫入 了。參考自定義策略,有了這個策略,再爛的程式,...