ugrás a tartalomhoz

While ciklus

bnc1995 · 2011. Szep. 27. (K), 10.15
Sziasztok!

Abba hibába ütköztem, hogy fel szeretnék tölteni egy mysql táblát adatokkal, amiket egy while ciklusban mindig növelem. Eddig nincs is gond, de nagyon sok adatról van szó, és a folyamat elég sokáig eltarthat, de a böngésző 30 másodperc után letiltja.
Ha valaki segítene agyon megköszönném
 
1

max_execution_time

Poetro · 2011. Szep. 27. (K), 10.41
A max_execution_time változtatásával növelhető a futási idő, és nem a böngésző tiltja le, hanem a PHP fejezi be a futást a max_execution_time idő elérése után. A PHP ezen beállítását vagy a php.ini-ben, vagy .htaccess-ben, vagy pedig az ini_set függvény segítségével lehet módosítani, amennyiben az érték módosítása nincs korlátozva. Ha nem lehet módosítani, akkor érdemes a futást feldarabolni több kisebb részletre és a befejező állapotot munkamenetben vagy fájlban tárolni. Ezután pedig többször kell a kódot futtatni, egészen addig, amíg a végére nem ér.
2

Jelentősen lecsökkentheted a

Hidvégi Gábor · 2011. Szep. 27. (K), 10.55
Jelentősen lecsökkentheted a beszúrások idejét, ha összefűzöd őket ilyen formában:
INSERT INTO tabla (mezo1, mezo2) VALUES (ertek1, ertek2), (ertek3, ertek4), (ertek5, ertek6);
Tovább gyorsít, ha használod a mysqldump program által generált utasításokat az INSERT előtt:
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

LOCK TABLES `tabla` WRITE;
/*!40000 ALTER TABLE `tabla` DISABLE KEYS */;
Az INSERT után pedig a következőket:
/*!40000 ALTER TABLE `tabla` ENABLE KEYS */;
UNLOCK TABLES;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
Több MySQL parancs egyszerre való futtatásához érdemes a mysqli_multi_query() függvényt használni (a php dokumentációban lévő példa 5.3 alatt nem fog lefutni, módosítani kell).
3

ini_set

bnc1995 · 2011. Szep. 27. (K), 10.57
Az ini_set függvény milyen paramétereket kér?
4

Járj utána.

Hidvégi Gábor · 2011. Szep. 27. (K), 11.04
Járj utána.