PHP基础7
主要知识点
1) 初识对象与类
2) mysqli 的增删改查
什么类,什么是对象
类(Class)就是指变量与一些使用这些变量的函数的集合
对象(Object)是问题域或实现域中某些事物的一个抽象,
它反映此事物在系统中需要保存的信息和发挥的作用;
它是一组属性和有权对这些属性进行操作的一组服务的封装体
例如:
房子作为一个类
房子里面的家具-沙发,厨具-豆浆机等物体,作为这个房子的一部分,即为属性
而通过电能启动风扇空调之类的,称为属性方法,
现在你需要根据条件找到一个有沙发,豆浆机,电能启动风扇空调的这类型的房子,
因此要具体到准确的一个房子,这就是你实例化,具体化的一个对象
与MySQLil连接相关的几个属性和方法的名称,参数,与功能
代码
config.php
<?php // 数据库默认设置 $db_host = '127.0.0.1'; $db_user = 'root'; $db_pass = 'root'; $db_name = 'php'; $db_charset = 'utf8';
db.php
<?php /** * 数据库的连接 */ //创建一个数据库连接,并返回mysqli对象 require 'config.php'; error_reporting(E_ALL ^E_WARNING); //简化: 将连接参数转为变量或数组 $db = new mysqli($db_host,$db_user,$db_pass, $db_name); //判断是否连接成功? if ($db->connect_errno) { // 自定义错误提示信息 die('连接错误'.$db->connect_errno.': '. $db->connect_error); } echo '<h1>连接成功</h1>'; // 设置默认数据库 //$mysqli->select_db($db_name); //设置client端默认的字符编码集 $db->set_charset($db_charset);
demo1.php
<?php // 引入创建的数据库 require './mysqli/db.php'; // 添加语句 $sql_add = "INSERT IGNORE `staff` SET `name`= ?, `salary`= ?, `age`= ?"; // 创建一个SQL语句的预处理对象 $stmt = $db->prepare($sql_add); // 参数绑定 $name = 'jack'; $salary = 3500; $age = 30; $stmt->bind_param('sii',$name,$salary,$age); // 执行sql语句 if($stmt->execute()){ //检测是否有数据被更新 if ($stmt->affected_rows > 0) { echo '<br>add :'.$stmt->affected_rows.' count'; } else { echo '<br>none'; } } else{ exit($stmt->errno. ':' .$stmt->error); } // 更新数据 $sql_update = "UPDATE `staff` SET `salary`= ?, `age`= ? WHERE `staff_id`= ?"; // 创建一个SQL语句的预处理对象 $stmt = $db->prepare($sql_update); // 参数绑定 $id = 10; $salary = 6000; $age = 35; $stmt->bind_param('iii',$salary,$age,$id); //执行SQL语句 if ($stmt->execute()) { //检测是否有数据被更新 if ($stmt->affected_rows > 0) { echo '<br>update :'.$stmt->affected_rows.' count'; } else { echo '<br>none'; } } else { exit('error '.$stmt->errno. ':' .$stmt->error); } // 查询 $sql_sel = "SELECT `staff_id`,`name`,`salary`,`sex` FROM `staff` WHERE `salary` < ? "; // 创建预处理对象 $stmt = $db->stmt_init(); // 创建一个SQL语句的预处理对象 $stmt = $db->prepare($sql_sel); // 参数绑定 $salary = 6000; $stmt->bind_param('i',$salary); // 执行SQL语句 if ($stmt->execute()) { // 获取结果集并放到缓存区 $stmt->store_result(); // 将结果集中的列绑定到变量上 $stmt->bind_result($id, $name, $salary, $sex); // 结果集是否不为0,只有不为空的时候才遍历 if ($stmt->num_rows > 0) { // 循环遍历结果集 // fetch()每次获取一条记录,并将指针自动下移 while ($stmt->fetch()) { echo '<p>id:'.$id.'---姓名:' .$name.'---工资:'.$salary.'---性别:'.$sex.'</p>'; } } else { exit('<p>当前表中没有数据</p>'); } } else { exit('error '.$stmt->errno. ':' .$stmt->error); } // 删除 $sql_del = "DELETE FROM `staff` WHERE `name`= ?"; // 创建一个SQL语句的预处理对象 $stmt = $db->prepare($sql_del); // 参数绑定 $name = 'jack'; $stmt->bind_param('s',$name); // 执行SQL语句 if ($stmt->execute()) { // 检测是否有数据被删除 if ($stmt->affected_rows > 0) { echo '<br>delete :'.$stmt->affected_rows.' count'; } else { echo '<br>none'; } } else { exit('error '.$stmt->errno. ':' .$stmt->error); } $stmt = null; // 关闭连接 $db = null;
总结
这次的重点是对mysqli 的函数操作与掌握,需要多次重复练习。