//PDO //數據訪問抽象層 <?php //1.操做其它數據庫 //2.事務功能 //3.防止SQL注入攻擊 //造PDO對象 //$dsn = "mysql:dbname=mydb;host=localhost"; //數據源 //$pdo = new PDO($dsn,"root","123"); //寫SQL語句 //$sql = "select * from nation"; //$sql = "insert into nation values('n077','數據')"; //執行,返回的是PDOStatement對象 //$a = $pdo->query($sql); //執行查詢 //$a = $pdo->exec($sql); //執行其餘語句 //var_dump($a); //$arr = $attr->fetchAll(PDO::FETCH_BOTH); //var_dump($arr); //事務功能 //事務:可以控制語句同時成功同時失敗,失敗時能夠回滾 $dsn = "mysql:dbname=mydb;host=localhost"; //數據庫名稱,服務器 $pdo = new PDO($dsn,"root","123"); //設置異常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); try { //開啓事務 $pdo ->beginTransaction(); $sql1 = "insert into nation values('n080','是刪')"; $sql2 = "insert into nation values('n070','好幾款')"; $sql3 = "insert into nation values('n075','好幾款')"; $pdo->exec($sql1); $pdo->exec($sql2); $pdo->exec($sql3); // 三個的執行成功是並的關係,不然出錯。 //提交 $pdo->commit(); } catch(Exception $e) { //抓住try裏面出現的錯誤,而且處理zv //echo $e->getMessage(); //獲取異常信息 //回滾 $pdo->rollBack(); } //final() //{ //最終執行,不管以上try代碼有沒有出錯,都會執行 //} ?> </body>
<?php //預處理語句防止SQL注入 $dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); //$code = "n005"; //SQL語句裏面須要加佔位符 ? //$sql = "select * from nation where code=?"; $sql = "insert into nation values(?,?)"; //準備執行,返回PDOStatement對象 $st = $pdo->prepare($sql); //調用綁定參數的方法來綁定參數 //$st->bindParam(1,$code); //$st->bindParam(2,$name); //$name = "測試1"; //索引數組 //注意區別 $attr = array("n006","測試2"); //執行方法 $st->execute($attr); //$attr = $st->fetchAll(); //var_dump($attr); ?>
<?php $dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); //佔位符是字符串 $sql = "insert into nation values(:code,:name)"; $st = $pdo->prepare($sql); //等待執行。prepare準備 //$st->bindParam(":code",$code,PDO::PARAM_STR); //$st->bindParam(":name",$name,PDO::PARAM_STR); //$code = "n007"; //$name = "測試3"; //關聯數組 //與?佔位符的區別 $attr = array("code"=>"n008","name"=>"測試4"); $st->execute($attr); ?>