首页 > 数据库技术 > 详细

使用PDO执行SQL语句exec()、query()

时间:2016-01-13 15:35:41      阅读:202      评论:0      收藏:0      [点我收藏+]

在PHP脚本中,通过PDO执行SQL查询与数据库进行交互,可以分为三种不同的策略,使用哪一种方法取决于你要做什么操作。

1、使用PDO::exec()方法

当执行INSERT、UPDATE和DELETE等没有结果集的查询时,使用PDO对象中的exec()方法去执行。该方法成功执行后,将返回受影响的行数。注意,该方法不能用于SELECT查询。示例如下所示:

 

<?php 
    try {
        $pdo = new PDO (mysql:host=localhost;dbname=testdb,root,123);
        $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $pdo->exec(set names "utf8");
    } catch (PDOException $e) {
        exit("数据库连接失败: ".$e -> getMessage());
    }

    $sql = "UPDATE contactInfo SET phone=‘15801680168‘ where name=‘高某某‘";

    //使用exec()方法可以执行INSERT、UPDATE、DELETE等

    $affected = $pdo->exec($sql);

    if ($affected) {
        echo "数据表中受影响的行数为: ".$affected;
    } else {
        print_r($pdo->errorInfo());
    }
    
 ?>

 

2、使用PDO::query()方法

当执行返回结果集的SELECT查询时,或者所影响的行数无关紧要时,应当使用PDO对象中的query()方法。如果该方法成功执行指定的查询,则返回一个PDOStatement对象。如果使用了query()方法,并想了解获取的数据行总数,可以使用PDOStatement对象中的rowCount()方法获取。示例代码如下所示:

 <?php  
     try {
        $pdo = new PDO (mysql:host=localhost;dbname=testdb,root,123);
        $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $pdo->exec(set names "utf8");
    } catch (PDOException $e) {
        exit("数据库连接失败: ".$e -> getMessage());
    }
    $sql = "SELECT name, phone, email FROM contactInfo WHERE departmentId=‘D01‘";
    try {
        //执行SELECT查询,并返回PDOstatement对象  
        $pdostatement = $pdo->query("$sql");
        echo "一共从表中获取到".$pdostatement->rowCount()."条记录:n";
        //利用循环输出
        foreach ($pdostatement as $row) {
            echo $row[name] . "t";           //输出从表中获取到的联系人的名字
            echo $row[phone] . "t";       //输出从表中获取到的联系人的电话
            echo $row[email] . "n";       //输出从表中获取到的联系人的电子邮件
        }
    } catch (PDOException $e) {
        echo $e->getMessage(); 
    }
 ?>

3、使用PDO::prepare()和PDOStatement::execute()两个方法

当同一个查询需要多次执行时(有时需要迭代传入不同的列值),使用预处理语句的方式来实现效率会更高。使用预处理语句就需要使用PDO对象中的prepare()方法去准备一个将要执行的查询,再使用PDOStatement对象中的execute()方法来执行。

 

使用PDO执行SQL语句exec()、query()

原文:http://www.cnblogs.com/xs-yqz/p/5127224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!