sql >> Databasteknik >  >> RDS >> Mysql

PHP Array som indata till lagrad procedur

Du måste bara vara smartare med dina samtal. Till exempel att hålla cachade DB-objekt runt omkring och sånt.

Utan att veta mer om din kod (din fråga är ganska förvrängd) verkar det som om din fråga är ungefär så här:

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

Du behöver egentligen bara skriva smartare kod:

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

Generellt hänvisar vi till detta som Dynamic SQL och är grunden för hur saker vanligtvis görs idag. En lagrad procedur (eller, baserat på hur jag läser din fråga, lagrad funktion) är användbar ibland, men är något föråldrad som en första ordningens metodik för gränssnitt med SQL. DB-killarna svär fortfarande ibland vid det, men jag tror att även de är ganska överens om att smartare frågor alltid är bättre.




  1. dbms_output.put_line

  2. Hur man ser den faktiska Oracle SQL-satsen som körs

  3. kommaseparerad sträng av valda värden i mysql

  4. Operatören finns inte:json =json