php增删查改数据库,PHP数据库的增删改查
如下图,我们创
我们对数据库内容的操作,按操作方式可以分为增删改查(CURD),按数据是否变化:分为读与写两种。读:即是查询(select),写:即是增加(insert),更新(update),删除(delete)。 如下图,我们创建了张原始数据表 接下来,我们要对这个数据库的内容进行增删改查的操作。 首先需要配置数据库参数 namespacepdo_edu; //数据库连接配置参数 return[ // 1.数据库的类型 'type'=>$type??'mysql', // 2.数据库的默认主机 'host'=>$host??'localhost', // 3.默认数据库 'dbname'=>$dbname??'phpedu', // 4.默认的字符编码集 'charset'=>$charset??'utf8', // 5.默认的端口号 'port'=>$port??'3306', // 6.默认的用户名 'username'=>$username??'root', // 7.默认的用户密码 'password'=>$password??'root', ]; 接着创建”connect.php”代码,这个是连接桥梁。 namespacepdo_edu; useException; usePDO; //加载配置参数 $config=require'config/database.php'; //PDO连接数据库三要素,三个重要参数: //数据源:DSN //用户名:username //用户密码:password //DSN :数据库类型:host=数据库的主机地址;dbname=默认的数据库名称;chart=...;prot=... $type=$config['type']; $host=$config['host']; $dbname=$config['dbname']; $username=$config['username']; $password=$config['password']; //创建DSN $dsn=sprintf('%s:host=%s;dbname=%s',$type,$host,$dbname); try{ //连接数据库 $pdo=newPDO($dsn,$username,$password); }catch(Exception$e){ die($e->getMessage()); } 一、数据库的查询 可以分为单条查询和多条查询。 1.单条查询代码举例: namespacepdo_edu; usePDO; // 1.连接数据库 require'connect.php'; // 2.操作数据表 // $sql = 'SELECT 字段列表 FROM 数据表名称 WHERE查询条件' $sql='SELECT `id`, `name` FROM `staffs` WHERE `age` >40'; //预处理对象: $stmt=$pdo->prepare($sql); //预处理对象¥stmt,就是SQL语句对象 //使用预处理对象调用 execute()执行这条sql语句 $stmt->execute(); //使用:debugDumpParams()调试/查看 // var_dump($stmt->debugDumpParams()); while($staff=$stmt->fetch(PDO::FETCH_ASSOC)){ printf(' %s ',print_r($staff,true)); } // 3.关闭连接(以下两种方式可任选一种) // $pdo = null; unset($pdo); 查询到的结果输出: 2.多条查询代码举例: namespacepdo_edu; usePDO; // 1.连接数据库 require'connect.php'; // 2.操作数据表 // $sql = 'SELECT 字段列表 FROM 数据表名称 WHERE查询条件' //匿名占位符:? // $sql = 'SELECT * FROM `staffs` WHERE `age` > ?'; //命名占位符:给一个有意义的字符串,必须用冒号开始 $sql='SELECT * FROM `staffs` WHERE `age` > :age'; $stmt=$pdo->prepare($sql); //对应匿名占位符使用的是索引数组 // $stmt->execute([40]); //对应命名占位符使用的是关联数组 $stmt->execute([':age'=>60]); $staffs=$stmt->fetchAll(PDO::FETCH_ASSOC); //需要熟记:PDO::FETCH_ASSOC // print_r($staffs); foreach($staffsas$staff){ $date=date('Y年m月d日',$staff['hiredate']); printf('id=%s: 姓名=%s ---职位=%s ---入职时间=%s ',$staff['id'],$staff['name'],$staff['position'],$date); } // 3.关闭连接 unset($pdo); 查询到的结果输出: 二、数据库的修改 代码举例: namespacepdo_edu; usePDO; // 1.连接数据库 require'connect.php'; // 2.操作数据表 // $sql = "UPDATE 表名 SET 字段=新值 WHERE 更新条件"; // $sql = "UPDATE `staffs` SET `name`= ? WHERE `id`=? ";//修改名字 // $sql = "UPDATE `staffs` SET `age`= ? WHERE `id`=? ";//修改年龄 $sql="UPDATE `staffs` SET `sex`= ? WHERE `id`=? ";//修改性别 $stmt=$pdo->prepare($sql); $stmt->execute(['1',9]); //判断是否执行成功 // $stmt->rowCount():返回写操作产生的受影响的记录数量 if($stmt->rowCount()===1){ echo'更新成功'; }else{ echo'没有记录被更新'; print_r($stmt->errorInfo()); } // 3.关闭连接 unset($pdo); 输出效果: 三、数据库更新 代码举例: namespacepdo_edu; usePDO; // 1.连接数据库 require'connect.php'; // 2.操作数据表 // $sql = 'INSERT 表名 SET name=?,age=?,....'; $sql="INSERT `staffs` SET `name`= ? , `age`= ? , `sex`= ? ,`position`= ? , `mobile`= ? , `hiredate`= ?"; $stmt=$pdo->prepare($sql); $data=['李明一',27,1,'农办主任','15637789652',1579244075]; $stmt->execute($data); //判断是否执行成功 // $stmt->rowCount():返回写操作产生的受影响的记录数量 if($stmt->rowCount()===1){ echo'新增成功,还可以获取新增记录的主键是:'.$pdo->lastInsertId(); }else{ echo'新增失败'; print_r($stmt->errorInfo()); } // 3.关闭连接 unset($pdo); 输出效果: 三、数据库删除 代码举例: namespacepdo_edu; usePDO; // 1.连接数据库 require'connect.php'; // 2.操作数据表 // $sql = "DELETE FROM 表名 WHERE 删除条件"; $sql="DELETE FROM `staffs` WHERE `id`= ?"; $stmt=$pdo->prepare($sql); $stmt->execute([19]); //判断是否执行成功 // $stmt->rowCount():返回写操作产生的受影响的记录数量 if($stmt->rowCount()===1){ echo'删除成功'; }else{ echo'删除失败'; print_r($stmt->errorInfo()); } // 3.关闭连接 unset($pdo); 输出效果: 四、总结 1.数据库的id一旦创建之后,只能一条一条往前增加,若是删除了中间的id,则跳过被删除的数字,继续往前增加。 2.对数据库的有用的操作,好像也只有查询、修改、增加、删除了。 3.需要熟记的常用语句需要达到默写级别。 4.注意:对数据库的操作需要先引入数据库。PDO连接数据库三要素,三个重要参数,数据源:DSN;用户名:username;用户密码:password。 5.在做数据库连接时需费些心思,后面对数据库的操作,一个模子下来,修改几个参数即可。 6.整个流程的操作,类似于我们在计算机上对文件夹里面的内容进行增删改查,例如PHP数据库,我们可以对文件夹里面的内容进行查找、复制、重命名、删除。 (编辑:广州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |