PHP multi_query() vagy query()?


  • Topic starter
    Sanyi
    Adminisztrátor

    Adott egy több 1000 sorral rendelkező tábla, melynek adatait egy csv fájl alapján kell frissíteni. Mi a jobb megoldás PHP alatt?

    1. Minden lekérdezésnél hívjuk meg az adatbázist?
    2. Vagy a multi_query() lekérdezés segítségével egyszerre adjuk át az összes lekérdezést az adatbázisnak?

    Mik a Pro és Kontra érvek?

    itzoli
    Felhasználó

    A multi_query() használatakor egy mysql lekérdezéssel tudsz több rekordot létrehozni. Ennek viszont az az ára, hogy a lekérdezéseidet össze kell fűzni egy string-be, ami nagy adatmennyiségnél sokat elvesz a memóriából. Persze ha ez egy egyszeri import akkor nem olyan nagy probléma.

    A query() használata egyszerűbb, viszont több lekérdezés, ezáltal lassabb végrehajtás az eredmény.

    Ha választanom kellene inkább a multi_query() mellett döntenék, de szerencsére van jobb megoldás.

    Egyedi lekérdezések helyett ma már érdemes inkább a mysqli_prepare() és mysqli_execute() függvényeket használni, mert így a fenti két megoldás legjobbját kapjuk a hátrányok nélkül. Tehát:

    • egy “sablonunk” van ami szinte semmi helyet nem foglal
    • ebbe a sablonba csak beszúrjuk szükséges változókat lekérdezéskor
    • gyors, mert a lekérdezéssel csak a tényleges adatokat kell a mysql szervernek elküldeni, nem a teljes lekérdezést
    • biztonságos, mert az előkészített lekérdezéshez csak paramétereket fűzünk hozzá, így immunis a mysql injection támadások ellen
2 bejegyzés megtekintése - 1-2 / 2

You must be logged in to reply to this topic.