首页 >后端开发 >php教程 >使用警告模式-PDO::ERRMODE_WARNING(PDO中捕获SQL语句中的错误方法二)

使用警告模式-PDO::ERRMODE_WARNING(PDO中捕获SQL语句中的错误方法二)

黄舟
黄舟原创
2017-04-28 17:42:072780浏览

使用警告模式-PDO::ERRMODE_WARNING(PDO中捕获SQL语句中的错误方法二)

警告模式会产生一个 PHP 警告,并且设置 errorCode属性,如果设置的是警告模式,那么除非明确的检查错误代码,否则程序将会继续按照其方式运行。

那么我们在上一篇文章《使用默认模式-PDO::ERRMODE_SILENT(PDO中捕获SQL语句中的错误方法一)》中,我们介绍了第一种PDO中捕获SQL语句中的错误方法,那么接下来这篇文章我们为大家介绍第二种方法:使用警告模式-PDO::ERRMODE_WARNING~!

设置警告模式,通过 prepare()和 execute()方法读取数据库中的数据,并且通过 while语句和分fetch()方法完成数据的循环输出,体会在设置成警告模式后执行错误的SQL语句。

下面我将使用实例来对使用警告模式-PDO::ERRMODE_WARNING的进一步介绍,先来介绍一下实现的思路。

首先创建php文件,连接MySQL数据库,通过预处理语句的 prepare()和execute()方法执行SELECT 查询操作,并设置一个错误的数据表名称,同时通过 setAttribute()方法设置为警告模式,最后通过 while 语句和 fetch()方法完成数据的循环输出,具体代码如下:

<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
$dbms = "mysql";                                  // 数据库的类型
$dbName ="php_cn";                                //使用的数据库名称
$user = "root";                                   //使用的数据库用户名
$pwd = "root";                                    //使用的数据库密码
$host = "localhost";                              //使用的主机名称
$dsn  = "$dbms:host=$host;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);  //设置为警告模式
$query="select * from user_12";//需要执行的sql语句
$res=$pdo->prepare($query);//准备查询语句
$res->execute();            //执行查询语句,并返回结果集
?>
<table border="1" width="500">
    <tr>
        <td height="22" align="center" valign="middle">id</td>
        <td height="22" align="center" valign="middle">用户名</td>
        <td height="22" align="center" valign="middle">密码</td>
    </tr>
    <?php
    while($result=$res->fetch(PDO::FETCH_ASSOC)){         // 循环输出查询结果集,并且设置结果集为关联数据形式。
        ?>
        <tr>
            <td height="22" align="center" valign="middle"><?php echo $result["id"];?></td>
            <td height="22" align="center" valign="middle"><?php echo $result["username"];?></td>
            <td height="22" align="center" valign="middle"><?php echo $result["password"];?></td>
        </tr>
        <?php
    }
    }catch(Exception $e){
        die("Error!:".$e->getMessage().&#39;<br>&#39;);
    }
    ?>
</table>

注意:

在上面的代码中,在定义 SELECT 查询语句的时候,我们故意使用了错误的数据表名字user_12(正确的数据表名称是:user),这里是为了测试写的!

在设置为警告模式以后,如果SQL 语句出现错误将会给出一个提示信息,但是程序仍然能继续执行下去,上面实例得到的结果如下图:

85.png

关于警告模式就介绍到这里,小伙伴们可以自己在本地试一试,那么我们下一篇文章将给大家介绍最后一个PDO中捕获SQL语句中的错误方法,具体请阅读《使用异常模式-PDO::ERRMODE_EXCEPTION(PDO中捕获SQL语句中的错误方法三)》!

以上是使用警告模式-PDO::ERRMODE_WARNING(PDO中捕获SQL语句中的错误方法二)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn