tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

viac insertov v jednom query

před 6 lety

miamia
Člen | 3

Ahojte, potreboval by som spravit nieco taketo:
INSERT INTO engineers (firstname)
VALUES(first);

INSERT INTO tasks (engineer_id, tool_id)
VALUES(LAST_INSERT_ID(), tool_id);

T.j. aby sa v jednom query urobil import do dvoch tabuliek, a pre druhu tabulku sa pouzil id zaznamu z prvej.
Da sa na to nejako pekne urobit dibi prikaz? najlepsie s pouzitim pola pre tabulky ako
$arr = array(
‚firstname‘ ⇒ $meno,
);
$arr2 = array(
‚engineer_id‘ ⇒ LAST_INSERT_ID(),
‚tool_id‘ ⇒ $toolid,
);

před 6 lety

Milo
Nette Core | 1119

Pokud nepotřebuješ multiquery tak:

$arr2 = array(
    'engineer_id%SQL' => 'LAST_INSERT_ID()',
    'firstname' => ...,
);

$db->begin(); // pokud chceš v transakci
$db->query('INSERT INTO engineers %v', $arr);
$db->query('INSERT INTO tasks %v', $arr2);
$db->commit();

případně

$db->query(....);
$lastId = $db->getInsertId();
$db->query(...);

před 6 lety

miamia
Člen | 3

vďaka, vyskúšam to

Editoval miamia (21. 2. 2013 19:29)