一.CURD语句基本语法
增: INSERT INTO `表名` (1字段1`,`字段2`......) VALUES("值1","值2"......);
删: DELETE FROM `表名` WHERE 条件
改: UPDATE `表名` SET `字段1`="值1",`字段2`="值2"... WHERE 条件
查: SELECT `字段列表` FROM `表名` WHERE 条件
二.PDO操作数据库
PDO操作数据库大概可分为6步骤
连接数据库
创建sql语句模板
创建sql语句对象-预处理对象
为sql语句模板中的变量赋值
执行sql语句
关闭连接
数据库连接部分
实例
<?php $db=require 'database.php'; $dsn="{$db['type']}:host={$db['host']};dbname={$db['dbname']}"; $username="{$db['username']}"; $password="{$db['password']}"; try{ $pdo=new PDO($dsn,$username,$password); }catch (PDOException $e){ die("连接失败".$e->getMessage()); }
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php return [ 'type' => 'mysql', 'host' => '127.0.0.1', 'dbname' => 'php', 'username' => 'root', 'password' => 'root' ];
运行实例 »
点击 "运行实例" 按钮查看在线实例
1)insert
实例
<?php //1.连接数据库 require __DIR__."/connect.php"; //2.创建sql语句模板 $sql='INSERT INTO `category` SET `name`=:name,`alias`=:alias'; //3.创建sql语句对象:预处理对象 $stmt=$pdo->prepare($sql); //4.为sql语句模板中的变量赋值 $name='zn'; $alias='宅男福利'; $stmt->bindParam(':name',$name,PDO::PARAM_STR); $stmt->bindParam(':alias',$alias,PDO::PARAM_STR); //5.执行sql语句 if($stmt->execute()){ //$stmt->rowCount返回受影响的行数 if($stmt->rowCount()>0){ echo '成功的添加' . $stmt->rowCount(). '条记录, 主键:'. $pdo->lastInsertId(); } }else{ dir("<pre>".print_r($stmt->errorInfo(),true)); } //关闭连接 $pdo=null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
我们查看数据库
2)delete
实例
<?php //1.连接数据库 require __DIR__."/connect.php"; //2.创建sql语句模板 $sql = 'DELETE FROM `category` WHERE `cate_id`=:cate_id'; //3.创建sql语句对象:预处理对象 $stmt=$pdo->prepare($sql); //4.为sql语句模板中的变量赋值 $cate_id=11; $stmt->bindParam(':cate_id', $cate_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;
运行实例 »
点击 "运行实例" 按钮查看在线实例
我们查看数据库
3)update
实例
<?php //1.连接数据库 require __DIR__."/connect.php"; //2.创建sql语句模板 $sql = 'UPDATE `category` SET `name` = :name, `alias` = :alias WHERE `cate_id`=:cate_id'; //3.创建sql语句对象:预处理对象 $stmt=$pdo->prepare($sql); //4.为sql语句模板中的变量赋值 $name='xjj'; $alias='小姐姐'; $cate_id=5; $stmt->bindParam(':name', $name, PDO::PARAM_STR); $stmt->bindParam(':alias', $alias, PDO::PARAM_STR); $stmt->bindParam(':cate_id', $cate_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;
运行实例 »
点击 "运行实例" 按钮查看在线实例
4)select
实例
<?php //1.连接数据库 require __DIR__.'/connect.php'; //2.创建sql语句模板 $sql='SELECT * FROM `movies` WHERE `cate_id`=:cate_id'; //3.创建sql语句对象:预处理对象 $stmt=$pdo->prepare($sql); //4.绑定变量 $cate_id=2; $stmt->bindParam(':cate_id',$cate_id,PDO::PARAM_INT); //5.执行sql语句 $stmt->execute(); //PDO::FETCH_ASSOC 获取模式 /* //fetch 每次取一行数据 指针下移一位 while($movies=$stmt->fetch(PDO::FETCH_ASSOC)){ echo "<pre>".print_r($movies,true); } */ /* //一次性获取所有 是一个二维数组 //echo "<pre>".print_r($stmt->fetchAll(PDO::FETCH_ASSOC),true); $movies=$stmt->fetchAll(PDO::FETCH_ASSOC); foreach($movies as $movie){ echo "<pre>".print_r($movie,true); } */ /* 将结果集的字段列表与变量绑定 $stmt->bindColumn('name',$name); $stmt->bindColumn('detail',$detail); while($stmt->fetch(PDO::FETCH_ASSOC)){ echo "简称:".$name."<br>"."====>简介 :".$detail."<hr>"; } */ //6.关闭连接 $pdo=null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
每次取一行数据 fetch
一次性获取所有数据 fetchAll
讲结果集的字段与变量绑定
`增删改查`其中'增','删','改'可视为写操作,所以使用rowCount()返回受影响的行数来判断是否执行成功