抱歉,如果我弄错了,但您想用您当前的数据库表执行一次此查询吗?而且我猜这两个表的行数相同(并且按彼此的顺序)?
如果你把它们分开,你会得到:
以员工表为例:
- employee_id(auto_increment)
- employee_firstname
- employee_lastname
- employee_document_id
- +whatever you want etc
文档表例如:
- document_id(auto_increment)
- document_name
- document_path
- document_employee_id
- +whatever you want etc.
如果这就是您的意思,那么我认为以下方法会起作用:
1:设置 PDO(编辑器对我不起作用,这就是为什么“>”)
<?php
$config['db'] = array(
'host' => 'host',
'username' => 'username',
'password' => 'password',
'dbname' => 'dbname'
);
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']);
?>
2:设置插入查询
<?php
$select_query = "SELECT * FROM table1";
//$db is PDO example name
$select_all = $db->prepare($select_query);
$select_all->execute();
$count = $select_all->rowCount();
for(var i = 0; i =< $count; ++i) {
$insert_query1 = "INSERT INTO table1 (employee_firstname,
employee_lastname, employee_document_id)
VALUES(employee_firstnameValue, employee_lastnameValue,'"i"'";
$insert_query2 = "INSERT INTO table2 (document_name, document_path,
employee_id) VALUES(document_nameValue, document_pathValue, '"i"')"
$insert_table1 = $db->prepare($insert_query1);
$insert_table1->execute()
$insert_table2 = $db->prepare($insert_query2);
$insert_table2->execute()
}
?>
我认为上面的方法会起作用,因为你会得到一个从 1 开始的 auto_increment,en de ++i 每次都会发生。因此,employee_document_id 和 document_employee_id 都将获得 ++i(即 1),就像 auto_increment 是(也是 1)一样
但也许这是想太多了..或者不会在你的模型中工作
旁注:
- 建议在查询中使用参数。
- 这只是我想到的一个松散的描述方法(也许你可以从这里拿起一些东西..)
编辑:另一个解决方案是使用像“SELECT MAX”这样的查询,但这是不安全的。