Correction status:qualified
Teacher's comments:
PDO连接数据库的过程与参数设置
$dsn = 'mysql:host=127.0.0.1;dbname=php';
$pdo = new PDO(dsn:'数据源',username:'用户名',password:'密码');
2. 如果创建PDO预处理对象: prepare()方法
$sql ='SELECT * FROM `staff` WHERE `age` > :age AND `sex` = :sex ;'; $stmt = $pdo->prepare($sql);
点击 "运行实例" 按钮查看在线实例
3. bindParam()与bindValue()
$age = 30; $stmt->bindParam(':age', $age);//将变量绑定到模板中,使用方法bindParam() $stmt->bindValue(':sex',1);//将数值变量直接绑定到模板中,使用方法bindValue()
点击 "运行实例" 按钮查看在线实例
4. execute()直接传参
5. fetch() 和 fetchAll()的区别与联系
fetchAll()查询所有信息,以二维数组形式输出
fetch()获取表中满足条件的第一条信息,并以一维数组返回,
6. bindColumn()的功能
将结果集中的字段与变量进行绑定
<?php //1、连接数据库 //创建PDO对象的过程 //参数 $pdo = new PDO(dsn:'数据源',username:'用户名',password:'密码'); $dsn = 'mysql:host=127.0.0.1;dbname=php'; $user = 'root'; $password = 'root'; try { $pdo = new PDO($dsn, $user, $password); }catch(PDOException $e){ exit('数据库连接错误'.$e->getMessage()); } //2、操作数据库 //pdo预处理操作(将sql语句对象化) //$sql ='SELECT * FROM `staff` WHERE `age` > :age AND `sex` = :sex ;'; SQL语句模板 :age :sex 都是命名占位符 $sql ='SELECT `id`,`name`,`position` FROM `staff` WHERE `id` BETWEEN :start AND :stop;'; $stmt = $pdo->prepare($sql); //$stmt:预处理对象 $res = $stmt->execute(['start'=> 2,'stop'=> 4]); //将结果集中的字段与变量进行绑定 $stmt->bindColumn('id',$id,PDO::PARAM_INT); $stmt->bindColumn('name',$name,PDO::PARAM_STR,30); $stmt->bindColumn('position',$position,PDO::PARAM_STR,30); if(true === $res){ $result = $stmt->fetchAll(PDO ::FETCH_ASSOC);//fetchAll()查询所有信息,以二维数组形式输出 fetch()获取表中满足条件的第一条信息,并以一维数组返回, foreach($result as $staff){ print_r($staff); echo "<br>"; } } //3、关闭数据库连接 //unset($pdo); //$pdo = null; ?>
点击 "运行实例" 按钮查看在线实例
<?php //1、连接数据库 //创建PDO对象的过程 //参数 $pdo = new PDO(dsn:'数据源',username:'用户名',password:'密码'); $dsn = 'mysql:host=127.0.0.1;dbname=php'; $user = 'root'; $password = 'root'; try { $pdo = new PDO($dsn, $user, $password); }catch(PDOException $e){ exit('数据库连接错误'.$e->getMessage()); } //2、操作数据库 //pdo预处理操作(将sql语句对象化) //$sql ='SELECT * FROM `staff` WHERE `age` > :age AND `sex` = :sex ;'; SQL语句模板 :age :sex 都是命名占位符 $sql ='SELECT * FROM `staff` WHERE `age` > :age AND `sex` = :sex ;'; $stmt = $pdo->prepare($sql); //$stmt:预处理对象 $age = 30; $stmt->bindParam(':age', $age);//将变量绑定到模板中,使用方法bindParam() $sex = 1; $stmt->bindValue(':sex',$sex);//将变量绑定到模板中,使用方法bindValue() $res = $stmt->execute(); //$res = $stmt->execute(['sex'=>1]); 如果只需要绑定一个参数,可以将参数直接写在execute()方法中绑定 if(true === $res){ $result = $stmt->fetchAll(PDO ::FETCH_ASSOC);//fetchAll()查询所有信息,以二维数组形式输出 fetch()获取表中满足条件的第一条信息,并以一维数组返回, echo "<pre>"; print_r($result); } //3、关闭数据库连接 //unset($pdo); //$pdo = null; ?>
点击 "运行实例" 按钮查看在线实例