2012-10-20 54 views
1

是否可以使用相同的查詢向兩個表提交數據?使用PDO向兩個mysql表提交數據

我現有的代碼如下所示:

private function adduser() { 

    if (!empty($this->error)) return false; 

    $params = array(
     ':user_level' => parent::getOption('default-level'), 
     ':name'  => $this->name, 
     ':email'  => $this->email, 
     ':username' => $this->username, 
     ':password' => parent::hashPassword($this->password) 
    ); 

    parent::query("INSERT INTO `login_users` (`user_level`, `name`, `email`, `username`, `password`) 
        VALUES (:user_level, :name, :email, :username, :password);", $params); 

所以這是一個有點混亂給我,因爲我不經常使用PDO我沒有寫這個代碼。除此之外,我想要做的是向我的'url_alias'表中添加兩個值,第一個是UID(從第一個查詢自動遞增),第二個是另一個變量值。

我在搜索時發現的所有示例似乎都適用於我,因爲這種現有代碼看起來很不錯。

任何人都可以幫我一把嗎?

回答

0

你所問的數據庫驅動程序(PDO,Mysqli等)並不重要,純粹是關於mysql的功能。 Mysql可以在單個查詢中更新和刪除多個表中的行,但不能插入。即INSERT table_1, table_2 ...是不允許的。

您必須爲要插入數據的每個表運行一個查詢。

+0

是否可以使用事務或其他來提交第二個查詢? – Jay

+1

確定您可以使用交易。開始之一,運行你需要的查詢,並最終提交交易。 –

+0

當查詢開始時,像「parent :: query」非我在網上發現的例子似乎適合我已有的代碼 – Jay