从一个MySQL表复制到另一个MySQL表的问题

时间:2014-10-20 18:34:40

标签: php mysql

我正在尝试从一个表复制到另一个表,它工作正常,但我还需要在新表中插入当前用户ID。我还没弄明白怎么做。通常我会做类似SET user_id = :user_id的事情,但我从来没有使用过这个。

这是我的代码:

$q = $conn->prepare("INSERT INTO user_themes(title,code_entry,code_home,code_css,code_category,code_archive)
    SELECT title, code_entry, code_home, code_css, code_category, code_archive FROM blogy_themes WHERE id = :id");

所以我的问题是: 如何将user_id(假设user_id为1)插入到新表中?

2 个答案:

答案 0 :(得分:1)

查询的基础不会改变。只需将值添加到列和`SELECT语句:

INSERT INTO user_themes(user_id, title,code_entry,code_home,code_css,code_category,code_archive)
  SELECT :user_id, title, code_entry, code_home, code_css, code_category, code_archive
    FROM blogy_themes WHERE id = :id

然后执行时,绑定:id:user_id

答案 1 :(得分:0)

根据我的理解,您希望拥有在所有新记录中执行操作的用户的ID,您可以执行以下操作:

$q = $conn->prepare("INSERT INTO user_themes(user_id,title,code_entry,code_home,code_css,code_category,code_archive)
SELECT '" . (int) $userid ."' as user_id, title, code_entry, code_home, code_css, code_category, code_archive FROM blogy_themes WHERE id = :id");

这是一种解决方法,以便继续按原样使用查询。 第二种选择更多" ORM"方法,您可以查询user_themes表中的所有相关记录,迭代结果集,克隆每一行并使用新的user_id保存。