Myslqi prepared statement
2013-07-30T20:51:48+02:00
2013-08-07T06:13:53+02:00
2022-07-23T07:36:17+02:00
  • Bátran tesztelj, kísérletezz; a konkrét kérdésre a válasz: természetesen minden INSERT-et végre is kell hajtani (execute), nem elég erősen rágondolni. És tényleg hatékonyabb, mert a szerver kihagyhatja az elemzés (magyarul parsolás) nevű lépést.
    Mutasd a teljes hozzászólást!
  • Senki sem tudja? :(
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Most ismerkedek a php mysqli_ függvényével, mert eddig csak az elődjét a mysql_-t használtam.

    Azt szeretném kérdezni, hogy mi az előnye az előfordításnak? Azt megtudtam, hogy utólag lehet módosítani az értékeket és így sql injektelés ellen is megvan a védelem, de működésileg van-e kiemelkedő jelentősége, hogy ezt használjam, ne pedig a rendes query-t? Továbbá hogyan is működik ez pontosan? Mit csinál ezen függvények meghívásakor, mikor fut le a lekérdezés?

    Hogy rögtön egy példával éljek, gyorsabb-e/erőfossáskímélőbb-e az előkészítéssel a beszúrás a régi hagyományosnál?

    CIKLUS
    mysql_query("INSERT INTO tabla (id, valamiMas) VALUES ($a, $b)");
    CIKLUS VÉGE


    mysqli_stmt_prepare (INSERT INTO tabla (id, valamiMas) VALUES (?, ?));
    CIKLUS
    mysqli_stmt_bind_param ("is", $id, $valamiMas);
    mysqli_stmt_execute();
    CIKLUS VÉGE

    Ugye kérdeztem, hogy hogyan is működik ez. Mivel nem tudom, ezért az se világos, hogy az execute a cikluson belülre kell vagy kívülre? Tehát a bind_param után rögtön kell futtatni mert az mindig felülíródik, vagy hülyeség, mert így a ciklusban elkészíti az összeset és a végén meg csak futtatni kell.

    Előre is köszönöm a felvilágosítás!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd