Correction status:qualified
Teacher's comments:
主题:
MySQLi面向对象实现更新操作。
PDO实现预处理删除操作。
实现效果:
预处理更新(面向对象):
PDO删除操作:
<?php //mysql数据库参数配置文件 //数据库连接参数变量赋值 $db_host = '127.0.0.1';//linux和macOS用localhost $db_user = 'root'; $db_pass = 'root'; $db_name = 'php'; $db_char = 'utf8';
点击 "运行实例" 按钮查看在线实例
<?php //数据库连接文件 //加载数据库连接参数文件 require 'db_config.php'; //创建连接变量 $mysqli = @new mysqli($db_host,$db_user,$db_pass,$db_name);//@符号屏蔽notice错误信息 //检测连接是否成功 if ($mysqli->connect_errno){ //输出错误信息 exit('连接错误'. $mysqli->connect_errno. ':'. $mysqli->connect_error); } //输出连接成功信息 //echo '<he>mysql数据库连接成功</h2>'; //设置数据库字符集 $mysqli->set_charset($db_char);
点击 "运行实例" 按钮查看在线实例
<?php //mysqli面向对象预处理更新操作 //加载数据库连接文件 require 'db_connect.php'; //创建SQL语句变量 $sql = "UPDATE staff SET name=? WHERE name=?;"; //创建预处理对象STMT $stmt = $mysqli->stmt_init(); //检测STMT预处理SQL语句对象 if ($stmt->prepare($sql)) { //绑定查询语句参数 $stmt->bind_param('ss', $name, $nameOld); //给已绑定的变量赋值 $nameOld = '金轮法王'; $name = '飞天神将'; //执行更新操作 $stmt->execute(); if ($stmt->affected_rows > 0) { echo '更新成功,受影响的纪录条数是:' . $stmt->affected_rows; } else { echo '没有更新记录'; } //操作执行完毕后关闭对象 $stmt->close(); } else { exit ('错误信息'. $stmt->errno. ':'. $stmt->error); } //关闭连接 $mysqli->close();
点击 "运行实例" 按钮查看在线实例
<?php //PDO预处理实现mysql数据库删除操作 //简化写法 //连接数据库并创建PDO对象 $pdo = new PDO('mysql:dbname=php', 'root', 'root'); //创建pdo预处理对象 $stmt = $pdo->prepare("DELETE FROM staff WHERE name=:name"); //执行删除操作(执行同时将参数赋值) $stmt->execute(['name'=>'小龙女']); //执行成功提示 echo '成功删除了'. $stmt->rowCount(). '条记录';
点击 "运行实例" 按钮查看在线实例
总结:
数据库操作实际使用PDO技术较多,可以跨数据库软件
需要特别牢记的函数及方法:
PDOStatement对象
$pdo->prepare($sql);创建pdo对象
:name 占位符
密码使用sha1()加密
$stmt->bindParam(); 绑定参数变量
$stmt->execute(); 执行操作
$stmt->errorInfo(); 错误信息