Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-Array als Eingabe für die gespeicherte Prozedur

Sie müssen nur schlauer mit Ihren Anrufen umgehen. Zum Beispiel das Aufbewahren von zwischengespeicherten DB-Objekten und so weiter.

Ohne mehr über Ihren Code zu wissen (Ihre Frage ist ziemlich verstümmelt), scheint es, dass Ihre Abfrage ungefähr so ​​lautet:

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

Sie müssen wirklich nur intelligenteren Code schreiben:

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

Im Allgemeinen bezeichnen wir dies als dynamisches SQL und ist die Grundlage dafür, wie die Dinge heute normalerweise gemacht werden. Eine gespeicherte Prozedur (oder, wie ich Ihre Frage gelesen habe, eine gespeicherte Funktion) ist manchmal nützlich, aber als Methode erster Ordnung für die Schnittstelle mit SQL etwas antiquiert. Die DB-Jungs schwören manchmal immer noch darauf, aber ich denke, dass selbst sie sich ziemlich einig sind, dass klügere Abfragen immer besser sind.