写PDO步骤:
datebase存储数据库信息:
实例
<?php // 数据库连接参数 return [ 'type'=>'mysql', 'host'=>'127.0.0.1', 'dbname'=>'student', 'username'=>'root', 'password'=>'root' ];
运行实例 »
点击 "运行实例" 按钮查看在线实例
connect连接数据库:
实例
<?php //数据库连接参数 $db = require 'database.php'; //配置数据源DSN信息 $dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}"; //连接数据库 try { $pdo = new PDO($dsn, $db['username'],$db['password']); }catch (PDOException $e) { die('Connection Failed:' . $e->getMessage()); } //测试是否连接上数据库 //var_dump($pdo);
运行实例 »
点击 "运行实例" 按钮查看在线实例
在数据创建一个学生信息表:
实例
CREATE TABLE `student` ( `id` int(5) unsigned NOT NULL COMMENT '学号' AUTO_INCREMENT PRIMARY KEY, `name` varchar(20) NOT NULL COMMENT '名字', `sex` char(2) NOT NULL COMMENT '性别', `age` char(3) NOT NULL COMMENT '年龄' ) ENGINE='InnoDB';
运行实例 »
点击 "运行实例" 按钮查看在线实例
利用预处理方法,设定好SQL模板,增加数据库信息:
实例
<?php //新增记录 //1.连接数据库 require 'inc/connect.php'; //2.创建SQL语句模板 $sql = 'INSERT INTO `student` SET `name`= :name, `sex`= :sex, `age`= :age'; //3.创建SQL语句对象 $stmt = $pdo->prepare($sql); //4.将变量绑定到SQL语句模板的命名占位符上 $name = 'Nick'; $sex = '男'; $age = '27'; $stmt->bindParam('name',$name,PDO::PARAM_STR); $stmt->bindParam('sex',$sex,PDO::PARAM_STR); $stmt->bindParam('age',$age,PDO::PARAM_INT); //5.执行SQL操作 if ($stmt->execute()) { if ($stmt->rowCount() > 0) { echo '成功添加'. $stmt->rowCount() .'个学生,<br>学号是:'. $pdo->lastInsertId() . '<br>名字:' . $name . '<br>性别:' . $sex . '<br>年龄:' . $age; } }else { die('<pre>' . print_r($stmt->errorInfo(), true)); } //6.关闭数据库连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
刷新网页4次(每刷新一次运行一次PHP代码),增加4个学生信息,在页面输出增加结果:
利用预处理方法,设定好SQL模板,删除数据库信息:
实例
<?php //删除记录 //1.连接数据库 require 'inc/connect.php'; //2.创建SQL语句模板 $sql = 'DELETE FROM `student` WHERE `id`=:id'; //3.创建SQL语句对象 $stmt = $pdo->prepare($sql); //4.将变量绑定到SQL语句模板的命名占位符上 $id = 4; $stmt->bindParam('id',$id,PDO::PARAM_INT); //5.执行SQL操作 if ($stmt->execute()) { if ($stmt->rowCount() > 0) { echo '成功删除'. $stmt->rowCount() .'个学生信息'; } }else { die('<pre>'. print_r($stmt->errorInfo(),true)); } //6.关闭数据库连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
删除一个id为4的学生信息,在页面中显示:
利用预处理方法,设定好SQL模板,修改数据库信息:
实例
<?php //更新记录 //1.连接数据库 require 'inc/connect.php'; //2.创建SQL语句模板 $sql = 'UPDATE `student` SET `name`= :name, `sex`=:sex, `age`=:age WHERE `id`=:id'; //3.创建SQL语句对象 $stmt = $pdo->prepare($sql); //4.将变量绑定到SQL语句模板的命名占位符上 $name = 'peter'; $sex = '男'; $age = 40; $id = 2; $stmt->bindParam('name',$name,PDO::PARAM_STR); $stmt->bindParam('sex',$sex,PDO::PARAM_STR); $stmt->bindParam('age',$age,PDO::PARAM_INT); $stmt->bindParam('id',$id,PDO::PARAM_INT); //5.执行SQL操作 if ($stmt->execute()) { if ($stmt->rowCount() > 0) { echo '成功更新'. $stmt->rowCount() .'个学生信息。<br>学号是:'. $pdo->lastInsertId() . '<br>名字:' . $name . '<br>性别:' . $sex . '<br>年龄:' . $age; } }else { die('<pre>'. print_r($stmt->errorInfo(),true)); } //6.关闭数据库连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
修改id为2的学生信息,在数据库中查询student表:
利用预处理方法,设定好SQL模板,查询数据库信息:
实例
<?php //查询数据:用fetchAll(); //1.连接数据库 require 'inc/connect.php'; //2.创建SQL语句模板 $sql = 'SELECT * FROM `student` WHERE `id`=:id'; //3.创建SQL语句对象 $stmt = $pdo->prepare($sql); //4.将变量绑定到SQL语句模板的命名占位符上 $id = 3; $stmt->bindParam('id',$id,PDO::PARAM_INT); //5.执行SQL操作 $stmt->execute(); //6.遍历数据库数据,返回二维数组 $student = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($student as $students) { echo '<pre>'.print_r($students,true); } //7.关闭数据库连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
查询student表中id为3的学生信息,在页面中输出数组