2012-10-20 15 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