Občas sa môže stať, že pri vykonávaní nejakej činnosti, ktorá zaberie veľa času (napríklad konvertovanie videa) stratíme spojenie s databázovým serverom a všetky pokusy o prístup k databáze sa skončia hláškou MySQL server has gone away
. Ak hľadáte riešenie pre WordPress, tak čítajte ďalej.
WordPress používa na prístup k databáze globálnu inštanciu triedy wpdb
. Táto trieda, ale nemá žiadnu metódu na jednoduché znovu pripojenie sa k DB serveru. To však neznamená, že takéto znovu pripojenie nie je možné. Na to nám postačí nasledujúci jednoduchý kód:
global $wpdb; mysql_close($wpdb->dbh); $wpdb->dbh = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD, true); $wpdb->select( DB_NAME, $wpdb->dbh);
S daným kódom sa znovu pripojíme k databáze a môžeme sňou ďalej pracovať ;).
p.s. môže sa stať, že pri akcii čo zaberá veľa času neuvidíte žiadnu chybu, len sa bude aplikácia správať nekorektne. V tom prípade skúste zapnúť vypisovanie databázových chýb vo WP:
global $wpdb; $wpdb->show_errors = true;
Ak potom zbadáte hore uvedenú chybu MySQL server has gone away
, tak sa len znovu pripojte.
Pridaj komentár