批改状态:合格
老师批语:非常好!没什么问题,一定要勤加练习,多看看手册。
本例要求:使用pdo类的对象去连接数据库,然后使用PDO对象中的prepare()方法获取PDOStatement对象, 接着使用PDOStatement对象的成员方法将获得的结果集中的数据(二维数组)遍历出来,渲染到表格中。
需要遍历的数据表如下:

<?php// 1. 定义使用PDO时需要用到的一些数据库常量// 定义主机名define('DB_HOST','php.edu');// 定义连接数据库的用户名define('DB_USER','root');// 定义连接数据库的密码define('DB_PWD','root');// 定义数据库的端口号define('DB_PORT','3306');// 定义数据库的类型define('DB_TYPE','mysql');// 定义数据库的名称define('DB_NAME','first');// 定义数据库的编码方式define('DB_CHARSET','utf8');// 定义数据库的数据源名(DSN),包括数据类型,主机名,端口号和数据库名称等。define('DB_DSN',DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);// 2. 连接数据库try {$pdo = new PDO(DB_DSN,DB_USER,DB_PWD);// var_dump($pdo);//捕捉特定于数据库信息的PDOEXCEPTION 异常} catch (Throwable $th) {echo $th->getMessage();}//捕捉拥有Throwable接口的错误或者其他异常catch (PDOException $e) {echo $e->getMessage();}// 3. sql语句查询$sql = "SELECT `id`,`username`,`password`,`sex`,`age`,`tel` FROM `student`";// 4. 准备执行sql语句,并得到一个对象$stmt = $pdo->prepare($sql);// 得到一个PDOStatement对象// var_dump($res);// 5.执行$stmt->execute();// 指定得到一个结果集,为关联数组$res = $stmt->fetchAll(PDO::FETCH_ASSOC);// var_dump($res);// 6. 遍历数组if (!empty($res)) {$table = <<<EOF<table border="1" align="center" style="border-collapse:collapse;width:500px;text-align:center;margin-top:50px;"><caption><h2>学生信息表</h2></caption><tr><td>序号</td><td>姓名</td><td>密码</td><td>性别</td><td>年龄</td><td>电话</td></tr>EOF;foreach ( $res as $key=>$value ) {$table.="<tr>";$table.="<td>{$value['id']}</td>";$table.="<td>{$value['username']}</td>";$table.="<td>{$value['password']}</td>";$table.="<td>{$value['sex']}</td>";$table.="<td>{$value['age']}</td>";$table.="<td>{$value['tel']}</td>";$table.="</tr>";}$table.="</table>";echo $table;}

经过mysqli和PDO的学习,我觉得最重要的就是要了解整个执行过程的流程,当对它的流程完全了解之后,就是对类中的函数或属性或方法加以应用,流程的每个环节可能都对应着不同的类,要使用好类中的方法,结合var_dump()的使用,能够更加清楚的知道此变量或结果属于哪一类,从而更好的使用函数或方法。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号