MySQLi面向对象实现更新操作效果图:
MySQLi面向对象实现更新操作源代码:MYSQLI_STMT_UPDATE.PHP
实例
<meta charset="UTF-8"> <?php //1.设置连接参数 $db_host = '127.0.0.1'; $db_user = 'root'; $db_pass = 'uyYYFGZxuVactZc7'; $db_name = 'wd2018'; $db_char = 'utf8'; //2.连接数据库服务器,并返回mysqli对象 $db=new mysqli($db_host,$db_user,$db_pass,$db_name); //3.检测是否连接成功 if ($db->connect_errno) { exit('连接错误'.$mysqli->connect_errno.':'.$mysqli->connect_error); } //4.准备SQL语句 $stmt=$db->prepare("UPDATE user SET user_name=?, email=? WHERE user_id=?;"); //5.设置绑定参数 $stmt->bind_param("ssi",$user_name,$email,$user_id); $user_name = '周伯通'; $email = 'zbt@qq.com'; $user_id=5; $stmt->execute(); echo '成功更新了'.$db->affected_rows.'条记录'; $stmt->close(); $db->close();
运行实例 »
点击 "运行实例" 按钮查看在线实例
PDO实现删除操作效果图:
PDO实现删除操作源代码:
PDO实现新增操作:
实例
<meta charset="UTF-8"> <?php //1.连接数据库,创建PDO对象 $db = new PDO('mysql:dbname=wd2018', 'root', 'uyYYFGZxuVactZc7'); //2.准备预处理SQL语句,点位符使用命名参数格式 $sql = "INSERT `user` SET `user_name`=:name, `email`=:email, `password`=sha1(:password)"; //3.创建PDO预处理对象 $stmt = $db->prepare($sql); //查看生成的SQL语句,可以复制到SQL命令窗口中进行运行,确保语句正解性 echo $stmt->queryString;exit(); //4.绑定参数到预处理对象 $data = ['name'=>'郭靖','email'=>'gj@163.com','password'=>'123456']; $stmt->bindParam(':name',$data['name'],PDO::PARAM_STR); $stmt->bindParam(':email',$data['email'],PDO::PARAM_STR); $stmt->bindParam(':password',$data['password'],PDO::PARAM_STR); //5.执行新增操作 if($stmt->execute()){ //rowCount():返回上一个SQL语句影响的行数 echo '<h3>成功添加了'.$stmt->rowCount().'条纪录</h3>'; }else { echo '<h3>添加失败</h3>'; print_r($stmt->errorInfo()); exit(); } //6.销毁PDO对象 $db = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
PDO实现新增操作简化版:区别在于简化了绑定参数和执行参加 去掉了判断和销毁PDO对象
//4.绑定参数并执行SQL语句 $data = ['name'=>'黄蓉','email'=>'hr@163.com', 'password'=>'123456']; $stmt->execute($data); //可直接给execute()传参数,省去参数绑定语句 echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>';
还能更加简化的
//如果添加多条,只需要提供一下数据,执行一下就行,预处理对象与语句已经在缓存中了,所以预处理效率最高 $stmt->execute(['name'=>'英姑','email'=>'yg@php.cn', 'password'=>'123456']); echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>'; $stmt->execute(['name'=>'中神通','email'=>'zst@php.cn', 'password'=>'123456']); echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>';
PDO连接数据
* 1. PDO是PHP与其它数据库之间的中间层,或者抽象层
* 2. PDO屏蔽了各个数据库之间的差异,对PHP提供了一个统一的访问接口
* 3. 使用PDO的第一步就是生成一个PDO对象,所有的功能必须要用这个对象来调用
* 4. 成功返回PDO对象,失败抛出异常
//1.配置参数
* DNS:数据源
* 基本格式: 数据库类型:属性1:值1; 属性2:值2;...
* 类型:如mysqli,oracle等
* 属性: 主机,默认数据库,默认字符集,默认端口号
//例如: mysql:host=127.0.0.1;dbname=php;charset=utf8;port=3306; $dsn = 'mysql:host=localhost; dbname=php; charset=utf8; port=3306';
//数据库用户名
$userName = 'root';
//数据库用户密码
$password = 'root';
//配置连接属性
$options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //设置错误模式 PDO::ATTR_CASE => PDO::CASE_NATURAL, //数据表字段保持不变 PDO::ATTR_EMULATE_PREPARES => true, //启用PDO模拟 PDO::ATTR_PERSISTENT => true, //启用持久性连接 ];
//使用try-catch()来捕获可能发生的错误
try {
//调用PDO构造函数实例化PDO类,创建PDO对象
$pdo = new PDO($dsn, $userName, $password, $options);
//连接是所有操作的基础,无论你设置的错误模式级别是什么,都会强制使用EXCEPTION异常模式
} catch (PDOException $e) {
die(); //连接错误是致命错误,必须停止脚本的执行
}
//断开PDO连接
//$pdo = null;
//销毁PDO对象
//unset($pdo);
PDO连接数据库简写版:
$pdo = new PDO('mysql:dbname=php;','root', 'root'); //其它参数取默认值