The following editor will bring you an example of functional operation of the PDO data access abstraction layer in PHP. The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor to take a look.
PDO: Data Access Abstraction Layer
has three major characteristics:
1. Can access other databases. All databases can
2. Has transaction function
3. With prepared statement function (to prevent SQL injection Attack)
The example operation code is as follows:
<?php //1.造PDO对象 $dsn ="mysql:dbname=mydb;host=localhost";//数据库类型:dbname=数据库名称;host=链接的ip或本机 $pdo =new PDO($dsn,"root","root");//$dsn,帐号,密码 //2.写SQL语句 $sql ="select * from info"; $sql ="insert into info values('004','王六','男','n007','1994-02-11')"; //3.执行SQL语句 $stm = $pdo->query($sql); //查询语句用query,返回的是结果 $arr = $pdo->exec($sql);//增删改用exec,返回的是执行的行数 //4.从PDOStatement对象里面读数据 $arr =$stm->fetch(PDO::FETCH_NUM);//默认不选为PDO::FETCH_BOTH fetch为选择一条数据 $arr = $stm->fetchAll(PDO::FETCH_BOTH);//fetchAll为全选 //事务类型:即要不全部都通过,要不全部失败,可以参考淘宝购物,必须同时满足扣款,减去库存和添加订单三项条件,缺一不可 //beginTransation 启动事务 //commit 提交事务 //rollback 回滚:返回到启动事务之前 //1.造PDO对象 $dsn ="mysql:dbname=mydb;host=localhost"; $pdo =new PDO($dsn,"root","root"); //2.将PDO的错误类型设置为异常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); try //尝试运行,包含从开启事务到提交事务 { //开启事务 $pdo->beginTransaction(); $sql1 = "insert into info values('004','进口','男','n008','1994-05-11')"; $sql2 = "insert into info values('005','审核','男','n009','1994-07-11')"; $sql3 = "insert into info values('006','姐我','男','n0010','1994-08-11')"; $pdo->exec($sql1); $pdo->exec($sql2); $pdo->exec($sql3); //提交事务 $pdo->commit(); } catch(Exception $e) { //回滚操作 $pdo->rollBack(); } //强类型语言中使用 final { //最终执行,无论有没有异常出现,该代码都会执行 } ?>
The above is the detailed content of Detailed explanation of examples of PDO data access abstraction layer in php. For more information, please follow other related articles on the PHP Chinese website!