学科分类
目录
PHP基础

PDO写操作

PDO类提供的exec()方法,用来执行操作类SQL,包括INSERT、UPDATE和DELETE。创建pdo.php文件,在该文件中封装PDO操作方法,实现实例化PDO对象和执行写操作的方法。具体代码如下所示。

 1  <?php
 2  function pdo_init(){
 3    $dsn = 'mysql:host=localhost;port=3306;dbname=mydb;charset=utf8';
 4    $pdo = new PDO($dsn, 'root', '123456');
 5    if(!$pdo){
 6      exit('数据库连接失败!');
 7    }
 8    return $pdo;
 9  }

上述代码中,定义了pdo_init()方法,该方法用于实例化PDO类,第5~7行代码当连接数据库失败后,直接终止脚本运行,并输出“数据库连接失败!”的提示信息,连接数据库成功时,则返回实例化的对象信息。

接下来封装pdo_exec()方法,该方法执行外部传入的SQL语句,返回执行的最终结果。具体代码如下所示。

 1  function pdo_exec($pdo,$sql){
 2    $res = $pdo->exec($sql);
 3    if(false === $res){
 4      echo 'SQL错误:<br/>';
 5      echo '错误代码:' . $pdo->errorCode() . '<br/>';
 6      echo '错误原因:' . $pdo->errorInfo()[2];
 7      exit;
 8    }
 9    return $res;
 10 }

在上述代码中,通过调用PDO类的exec()方法来执行操作类SQL,该方法执行成功后返回受影响的行数。其中,第3~8行对执行结果进行判断,如果执行失败,则调用errorCode()和errorInfo()方法来输出错误信息。需要注意的是,第3行代码使用“===”恒等于运算符来判断执行结果,当没有可更新或删除的数据时,返回受影响的行数为0,因此需要使用恒等于运算符对结果集进行判断。

封装完PDO操作类后,创建mypdo.php,调用封装好的PDO方法。具体代码如下所示。

 1  <?php
 2  include 'pdo.php';
 3  $pdo = pdo_init();
 4  // 执行插入数据SQL
 5  $inserSql = 'INSERT INTO student VALUES(NULL,'Jery',2)';
 6  $res = pdo_exec($pdo, $inserSql);  // var_dump($res)输出结果:int(1)
 7  // 获取自增ID
 8  echo '插入数据成功,自增ID为:' $pdo->lastInsertId();  // 5
 9  // 执行更新数据SQL
 10 $updateSql = 'UPDATE student SET mid=1 WHERE id=4';
 11 $res = pdo_exec($pdo, $updateSql); // var_dump($res)输出结果:int(1)
 12 // 执行删除数据SQL
 13 $deleteSql = 'DELETE FROM student WHERE id=4';
 14 $res = pdo_exec($pdo, $deleteSql); // var_dump($res)输出结果:int(1)

在上述代码中,分别调用pdo_exec()来执行插入、更新和删除等操作,通过打印执行结果可以看出,返回结果都是int(1),表示该操作产生的受影响行数。当插入数据后,需要获取新增记录的自增ID时,可以通过调用PDO提供的lastInsertId()方法来获取。

点击此处
隐藏目录