1

私は長い間ウェブを検索しましたが、解決策が見つかりませんでした。テーブルに挿入し、レコードの 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);

この結果は次のようになります [...] INSERT INTO pf_roster_employees (weekID, dayID, employeeID) VALUES ("1", "1", last_insert_id()), ("1", "4", last_insert_id()), ("1", "5", last_insert_id())

通訳者はYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTOpf_roster_employeesと言います(weekID, dayID, employeeID) VALUES ("1", "1", ' at line 1

2 番目のクエリをレプリケートするためのより便利な方法はありますか? つまり、SQL は PHP よりもはるかに高速であり、もちろん、この汚いコードを使用することを非常に恥ずかしく思います。

ありがとうございました。

4

1 に答える 1

0

;ここでSQLクエリを分離するのを忘れました

 NULL, NULL, NULL)';
                 ^

NULL, NULL, NULL);';

またmysqli_*、1 つの単一ステートメントで複数のクエリを実行することをサポートします。

于 2013-06-24T06:33:48.183 に答える