PDO连接/准备和执行功能

时间:2013-02-07 19:32:14

标签: php

我认为我对下面的问题有点了解,我想做的是拥有一个PDO,并在函数中调用prepare和execute。

我试图在每个函数中保存与PDO重复的代码。

如果有人能指出我正确的方向,那将是非常好的,也有任何建议,我现在正试图从文章中弄清楚这一切。然后在下面给我调用成员函数prepare()在...中的非对象

另外两个问题

  1. 我应该尝试执行和准备的功能,是 这种常见做法?
  2. 是否可以将$ db放入函数中     并在需要时调用它,以便我可以将模具放回去?
  3. 非常感谢任何帮助。

    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('log_errors', 1);
    
    $config['db'] = array(
        'host' => 'localhost',
        'username' => 'root',
        'password' => 'root',
        'dbname' => 'bhill');
    $db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'],
        $config['db']['username'], $config['db']['password']);
    try {
        $db->exec("SET CHARACTER SET utf8");
        //$db = null;
    }
    catch (PDOException $ex) {
        print "Error!: " . $ex->getMessage() . "<br/>";
        die();
    }
    
    function update($db, $fn, $ln, $email, $offers, $vlue, $responce)
    {
        $stmt = $db->prepare("insert into kkt (fName_765, lName_765, email_765, signup_765, kkt_resp_765, kkt_respSate_765, stamp_765) values (:fname, :lname, :email, :signup, :kkt_rsp, :kkt_respState, NOW())");
        $stmt->bindParam(':fname', $fn, PDO::PARAM_STR);
        $stmt->bindParam(':lname', $ln, PDO::PARAM_STR);
        $stmt->bindParam(':email', $email, PDO::PARAM_STR);
        $stmt->bindParam(':signup', $offers, PDO::PARAM_STR);
        $stmt->bindParam(':kkt_rsp', $vlue, PDO::PARAM_STR);
        $stmt->bindParam(':kkt_respState', $responce, PDO::PARAM_STR);
        $stmt->execute();
        $stmt = null;
    }
    
    $fn = 'test';
    $ln = 'test';
    $email = 'tesst@test,com';
    $offers = '1';
    $vlue = 'value';
    $responce = 'resp';
    
    update($db, $fn, $ln, $email, $offers, $vlue, $responce);
    

1 个答案:

答案 0 :(得分:5)

你在做:

$db = null;
设置编码后

。这基本上删除了实例。