sql >> Databáze >  >> RDS >> Mysql

Pole PHP jako vstup do uložené procedury

Jen musíte být ve svých hovorech chytřejší. Například udržování objektů DB uložených v mezipaměti a podobné věci.

Aniž byste věděli více o svém kódu (vaše otázka je značně zkomolená), zdá se, že pokud je váš dotaz něco takového:

$query = "select abc from tblname where colname =" .$value; // run 10 times.

Opravdu stačí napsat chytřejší kód:

$values = array(); // Now, populate this array.  
                   // When you're done, run the query:
$query = 'select abc from tblname where colname IN (\''.implode('\',\'', $values).'\')';

Obecně to nazýváme dynamickým SQL a je základem toho, jak se dnes věci běžně dělají. Uložená procedura (nebo, podle toho, jak jsem četl vaši otázku, uložená funkce) je občas užitečná, ale jako metodologie prvního řádu pro propojení s SQL je poněkud zastaralá. Kluci z DB na to stále občas přísahají, ale myslím si, že i oni se docela shodují na tom, že chytřejší dotazy jsou vždy lepší.




  1. Spustit uloženou proceduru z funkce

  2. Získat řádek, kde sloupec datetime =dnes - SQL server noob

  3. Ukládání souboru do databáze na rozdíl od systému souborů?

  4. Jak vyřešit ORA-29280:neplatná cesta k adresáři