Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL中的多查询支持?_Php_Mysql_Syntax - Fatal编程技术网

Php MySQL中的多查询支持?

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

我在网上搜索了很长时间,没有找到解决办法。我试图在一个表中插入,获取记录的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_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在第一次插入查询之后,您忘记了