Nette database – vicenasobny insert

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
simekadam
Člen | 36
+
0
-

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
+
0
-

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
+
0
-

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)

simekadam
Člen | 36
+
0
-

Super díky moc , to je přesně ono:)Jsem si říkal, že by v tom byl čert, aby to nějak snadno nešlo..