使用PDO从一个表单插入两个表

时间:2015-02-15 16:46:14

标签: php mysql pdo

如何使用PDO将表单插入两个MySQL数据库是我的代码: pc_owner表: PCID pcname, pcphone

pc_wo table: woid, PCID, probdesc

<?php include('core/init.php'); ?>

<?php
//Create DB Object
$db = new Database;

//Run Query
$db->query("INSERT INTO `pc_owner` (pcname, pcphone)
                              VALUES (:pcname, :pcphone)
          INSERT INTO `pc_wo` (probdesc)
                              VALUES (:probdesc,lastInsertId())");


//Bind Values pc_owner
$db->bind(':probdesc', $_POST['probdesc']);
$db->bind(':pcphone', $_POST['pcphone']);
//bidn values to pc_wo table
$db->bind(':probdesc', $_POST['probdesc']);


//$db->bind(':pcphone', $_POST['probdesc']);

if($db->execute()){
  echo "Contact was added";
} else {
  echo "Could not add contact";
}

?>

使用了Database.php类

<?php
class Database {
    private $host = DB_HOST;
    private $user = DB_USER;
    private $pass = DB_PASS;
    private $dbname = DB_NAME;

    private $dbh;
    private $error;
    private $stmt;

    public function __construct() {
        // Set DSN
        $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
        // Set options
        $options = array (
                PDO::ATTR_PERSISTENT => true,
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 
        );
        // Create a new PDO instanace
        try {
            $this->dbh = new PDO ($dsn, $this->user, $this->pass, $options);
        }       // Catch any errors
        catch ( PDOException $e ) {
            $this->error = $e->getMessage();
        }
    }


    public function query($query) {
        $this->stmt = $this->dbh->prepare($query);
    }


    public function bind($param, $value, $type = null) {
        if (is_null ( $type )) {
            switch (true) {
                case is_int ( $value ) :
                    $type = PDO::PARAM_INT;
                    break;
                case is_bool ( $value ) :
                    $type = PDO::PARAM_BOOL;
                    break;
                case is_null ( $value ) :
                    $type = PDO::PARAM_NULL;
                    break;
                default :
                    $type = PDO::PARAM_STR;
            }
        }
        $this->stmt->bindValue ( $param, $value, $type );
    }


    public function execute(){
        return $this->stmt->execute();
    }


    public function resultset(){
        $this->execute();
        return $this->stmt->fetchAll(PDO::FETCH_OBJ);
    }


    public function single(){
        $this->execute();
        return $this->stmt->fetch(PDO::FETCH_OBJ);
    }


    public function rowCount(){
        return $this->stmt->rowCount();
    }


    public function lastInsertId(){
        return $this->dbh->lastInsertId();
    }


    public function beginTransaction(){
        return $this->dbh->beginTransaction();
    }


    public function endTransaction(){
        return $this->dbh->commit();
    }


    public function cancelTransaction(){
        return $this->dbh->rollBack();
    }
}

如何使用此类插入2个表

0 个答案:

没有答案