sql >> Database teknologi >  >> RDS >> Mysql

PHP Array som input til Stored Procedure

Du skal bare være klogere på dine opkald. For eksempel at holde cachelagrede DB-objekter omkring og den slags ting.

Uden at vide mere om din kode (dit spørgsmål er ret forvansket), ser det ud til, at hvis din forespørgsel er sådan her:

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

Du skal egentlig bare skrive smartere kode:

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

Generelt omtaler vi dette som Dynamic SQL og er grundlaget for, hvordan tingene typisk gøres i dag. En lagret procedure (eller, baseret på hvordan jeg læser dit spørgsmål, lagret funktion) er nyttig til tider, men er noget forældet som en første-ordens metode til grænseflader med SQL. DB-fyrene sværger stadig nogle gange til det, men jeg tror, ​​at selv de er ret godt enige om, at smartere forespørgsler altid er bedre.




  1. Håndtering af MySQL-replikeringsproblemer ved hjælp af ClusterControl

  2. Kan ikke VÆLGE fra UPDATE RETURNING-klausulen i postgres

  3. Postgresql ændre kolonnetype fra int til UUID

  4. Sådan rettes "Serveren er ikke konfigureret til DATAADGANG" i SQL Server