Autor Zpráva
andynewcastleth
Profil
Vyřešeno.
Kajman
Profil
Něco jako
$fotky=array[];
cyklus ...
  $fotky[]="('$xml_id', '$xml_src', '$xml_alt')";
...
$hromadny_insert="INSERT INTO zajezd_foto (idIC, src, alt) VALUES " .implode(", ", $fotky);

Je možné, že délka dotazu narazí na limit. Pak je potřeba rozdělit hromadný insert na více dotazů - nejlépe dle nastavení odkazované proměnné.
andynewcastleth
Profil
Já uvnitř WHILE si vše ukládám do proměnné jako text:

while(...){
    $query_foto=$query_foto."('', '$xml_id', '$xml_src', '$xml_alt'),";
}

A jakmile celý WHILE doběhne, tak provedu vložení všech řádků najednou.

$query_foto="INSERT INTO zajezdy_foto (id, idIC, src, alt) VALUES ".$query_foto;
$query_foto=mb_substr($query_foto, 0, -1); //odstranim posledni carku
mysqli_query($mysqli, "$query_foto") or die(mysqli_error());

Funguje dobře. Z nějakých 107 sekund jsem nyní na 3 sekundách běhu skriptu.

Řešení s poli a implode jsem viděl na Google, ale nebyl jsem schopný to rozchodit... .
Kajman
Profil
S polem se lépe pracuje ve chvíli, kdy se musí programovat to rozdělení na více dotazů, protože by jeden byl až moc dlouhý.
lionel messi
Profil
Mohol by prosím nejaký mmmoderátor vrátiť pôvodné znenie [#1]? Takéto vlákno trošku stratilo zmysel. Ďakujem.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0