Nette database – vicenasobny insert
- simekadam
- Člen | 36
Ahoj, jak se da v nette database provest vicenasobny insert?
Mam pole integeru ktere chci proste proiterovat a vlozit do db..
Normalne bych si vytvoril query string a ten pak v cyklu vzdycky zretezil
z dalsi hodnotou, ale to tady asi nejde..?
Koukal jsem, ze se to da delat takto
$db->exec('INSERT INTO vectors', $value[1], $value[2],..
));
jenze ja mam to pole delky treba 250 a po kazde bude jiny pocet..Samozrejme
muzu do foreache dat cele exec, ale prijde mi to reseni s jednorazovym, (nebo
proste nejak chytre rozdelenym) vlozenim lepsi..
Zkousel jsem funkci dat rovnou pole s hodnotami, ale v poli hleda indexy
sloupcu v db, tak jsem zkusil dat to pole do
array('sloupec'=>$values)
Diky za pomoc
- Nox
- Člen | 378
Pokud se to opravdu má takto, tak zkus
<?php
// $args je momentálně pole polí tvých hodnot
array_unshift($args, 'INSERT INTO vectors'); // přidáme query jako první argument
call_user_func_array(array($db, 'exec'), $args); // spuštění metody s flexibilním počtem argumentů
?>
ale pokud jde to od redhead, tak použij to
Editoval Nox (15. 1. 2012 20:43)
- redhead
- Člen | 1313
Mělo by to jít s polem typu:
array(
array("sloupec" => "hodnota", ...), // prvni zaznam (řádek)
array("sloupec" => "hodnota", ...), // druhy zaznam (řádek)
..
)
A to jen hodit do fce.
Tedy mělo by to fungovat teď, protože to se to měnilo asi před třemi měsíci nebo tak.
edit: viz tento opravený bug
Editoval redhead (15. 1. 2012 20:41)