Php MySQL中的多查询支持?
我在网上搜索了很长时间,没有找到解决办法。我试图在一个表中插入,获取记录的ID并在另一个表中插入x次。 我的代码是Php MySQL中的多查询支持?,php,mysql,syntax,Php,Mysql,Syntax,我在网上搜索了很长时间,没有找到解决办法。我试图在一个表中插入,获取记录的ID并在另一个表中插入x次。 我的代码是 $first = true; $sql = 'INSERT INTO `pf_employees` (firstname, surname, `occupationGroup`, birthday, image) VALUES ("'.$name.'", NULL, NULL, NULL, NULL)'; $sql .= 'INSERT INTO `pf_roster_emplo
$first = true;
$sql = 'INSERT INTO
`pf_employees` (firstname, surname, `occupationGroup`, birthday, image)
VALUES ("'.$name.'", NULL, NULL, NULL, NULL)';
$sql .= 'INSERT INTO `pf_roster_employees` (weekID, dayID, employeeID) VALUES ';
foreach($days as $temp) {
if(!$first)
$sql .= ', ';
$sql .= '("'.$weekID.'", "'.$temp.'", last_insert_id())';
$first = false;
}
$result = $config['database']->query($sql);
这会导致如下结果:
[…]将值(“1”、“1”、最后一次插入id())、(“1”、“4”、最后一次插入id())、(“1”、“5”、最后一次插入id())、(“1”、“5”、最后一次插入id())插入pf员工名册中。
解释器说您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解可使用的正确语法,即第1行的“插入到”pf_花名册_员工(weekID、dayID、employeeID)值(“1”、“1”和“1”
有没有更方便的方法来复制第二个查询?我的意思是,SQL比PHP快得多,当然,我对使用这种肮脏的代码感到非常羞愧
谢谢。您忘记了在这里分离sql查询
NULL, NULL, NULL)';
^
NULL, NULL, NULL);';
还可以使用mysqli.*
,它支持在一个单语句中运行多个查询。如果使用mysqli
它支持多个语句。我已经在使用mysqli
(或者至少我认为是这样)。数据库连接是通过$config['database']=@newmysqli(主机、用户、密码、数据库)提供的
EDIT:谢谢!用multi_query
代替query
效果很好!@MartinWeise在第一次插入查询之后,您忘记了;
。