Correction status:Uncorrected
Teacher's comments:
<?php $dsn='mysql:host=127.0.0.1;dbname=xuexi;charset=utf8;post=3306'; $dsn= 'mysql:dbname=xuexi'; $dbname='root'; $dbpw='root'; // try{ // $p=new PDO($dsn,$dbname,$dbpw); // }catch(PDOException $e){ // print_r($e->getMessage()); // exit; // } // // 上面方法是为了查询PDO异常处理出错时方便查询哪的问题。 // try 理解为‘试图’和‘IF’语句类似 如果正确为真如果不正确则进行'catch'循环'PDOException'是一个方法意思是:异常类固定的,将异常里的异常复制给自定义变量'$e' ,因为'$e'的值是异常类,是无法直接打印所以需要用 getMessage():获取异常的详细描述信息才可以打印。 $p=new PDO($dsn,$dbname,$dbpw); $sql="SELECT * FROM `user`"; // $a=$p->prepare($sql); prepare:准备要执行的语句,并返回语句对象 也是一个PDO 类 // $b=$a->execute(); // execute — 执行一条预处理语句是PDOStatement 类 // var_dump($b); $ret=$p->query($sql); // print_r($ret); 尝试打印这句话显示PDOStatement为类;返回的结果集是可以通过foreach循环打印的。然后通过将类转为可以打印的字符串。PDO类一般都以PDOStatement类返回。 // foreach($ret as $row){ // echo $row['id'].'<hr>'; // } 此循环打印为单个 $arr=[]; foreach($ret as $row){ $arr=$row; } print_r($arr); //这里则显示打印多维数组 如果去掉[]折打印单个数组 ?>
点击 "运行实例" 按钮查看在线实例