MySQL vs. MySQL z PHP

MySQL vs. MySQL z PHP.

Objektově orientovaná struktura

MySQLi poskytuje soubor funkcí pro kódovou strukturu s procedurálním stylem, který usnadňuje přechod MySQL. Poskytuje však také funkcionalitu prostřednictvím souboru objektově orientovaných tříd. Použití objektově orientovaného stylu může integraci MySQL lépe přizpůsobit objektově orientovaným funkcím verze 5 a často eliminuje potřebu vytvářet další proměnné pro podporu operací a úkolů MySQL. Následující příklad ukazuje kód pro připojení k databázovému serveru a otevření databáze v MySQL a MySQL: MySQL: $ dbc = mysql_connect ("localhost", "user", "password"); $ db = mysql_select_database ("databáze");

MySQLi: $ db = nový mysqli ("localhost", "user", "password", "database");

Připravené pokyny

Snad největší rozdíl mezi MySQL a MySQLi je jeho podpora pro připravené instrukce. S MySQL byste měli být obzvlášť opatrní, abyste použili příkaz escape v každém řetězci použitém v dotazu, abyste zabránili útokům SQL injection. S MySQLi a připravenými instrukcemi můžete propojit sady parametrů na dotaz a shodit se s různými hodnotami, které chcete použít v dotazu. MySQLi je zodpovědný za to, že se před použitím v databázi použije příslušný výkaz úniku do celého kódu. Například následující kód vkládá dva záznamy do tabulky MySQL pomocí MySQLi:

$ stmt = $ db-> prepare ("INSERT INTO PEOPLE (FullName, Email) hodnoty (?, ?); $ stmt-> bind_param (" ss ", $ fullname, $ email); $ email = "[email protected]"; $ stmt-> execute (); $ fullname = "Mary Johnson"; $ email = "[email protected]"; $ stmt-> execute (); $ stmt-> zavřít ();

Zlepšení účinnosti

Z důvodu připravených pokynů a dalších vylepšení efektivnosti by rozšíření MySQL mělo fungovat rychleji než ekvivalentní instrukce MySQL. Jak je vidět v předchozím příkladu s použitím připravených instrukcí, přetížení vložky je zapotřebí pouze jednou při přípravě instrukce. S ekvivalentním příkazem insert v MySQL by se přetížení vložky mělo opakovat s každým dotazem do databáze.

Transakce

MySQLi poskytuje další funkce ve formě transakcí. Pomocí rozšíření MySQLi můžete v transakci seskupit sadu datových operací a provést operace dohromady jako jednu transakci. Pokud selže operace transakce, celá operace se nezdaří a všechny provedené změny jsou obráceny. Můžete například použít transakci při naplánování převodu peněz mezi dvěma účty, protože pokud obě strany operace nejsou úspěšné, operace není úspěšná a nechcete opustit stav, ve kterém byl účet odepsán ale druhá nebyla akreditována.