Autor | Zpráva | ||
---|---|---|---|
hellmc Profil |
#1 · Zasláno: 3. 2. 2021, 17:22:21
Zdravim .. posielam curlom velky post (8MB) na databazu kde je nastaveny max_allowed_packet=1M, hosting nedovoluje menit tuto hodnotu ... da sa to nejak obist? ... mozno nejak rozkuskovat ten post a potom ho zlozit na vzialenom webe ?
|
||
Kajman Profil |
#2 · Zasláno: 3. 2. 2021, 18:18:54
Na serveru máte vlastní api?
|
||
hellmc Profil |
#3 · Zasláno: 4. 2. 2021, 14:11:23
na localhoste mam
function funcs_posli_curlom_query($query,$post_priznak) { global $token; $url=VZDIALENY_WEB."/acceptor.php?token=".$token; $posli=array("priznak"=>$post_priznak,"query"=>$query); $c=curl_init($url); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); curl_setopt($c, CURLOPT_POSTFIELDS, $posli); $vysledok=curl_exec($c); return $vysledok; } a na hostingu subor acceptor.php s funkciou : function sync_popisy() { if(isset($_POST['priznak']) AND $_POST['priznak'] =="sync_popisy") { $query_create=$_POST['query_create']; $query=$_POST['query']; exeq("DROP TABLE IF EXISTS `popisy`"); exeq($query_create); exeq($query); echo "SYNC_POPISY"; } } exeq je mysqli_query |
||
Kajman Profil |
#4 · Zasláno: 4. 2. 2021, 14:30:06
Pak by mělo stačit rozparsovat $_POST['query'] na kratší příkazy, tak aby v jednom volání exeq nebyl ten dotaz delší než 1MB. Nebo si data poslat v csv formátu a použít načtení z uloženého souboru dev.mysql.com/doc/refman/8.0/en/load-data.html
|
||
hellmc Profil |
#5 · Zasláno: 4. 2. 2021, 16:58:01
Kajman:
Dik ... rozsekal som query do pola a potom foreach > na acceptor na vzdialenom webe, dufal som, ze je nejaka zazracna funkcia, co to urobi za mna kuskovac> function chunked_popisy($chunks) { $vsetkych=vsetkych("popisy",""); for($i=0;$i<$vsetkych;$i+=$chunks) { $query="SELECT * FROM popisy LIMIT $i,$chunks"; $ret="INSERT INTO popisy(prirast_cislo,popis,uryvok) VALUES"; foreach(funcs_fetch($query) AS $f) { $ret.="(".intval($f['prirast_cislo']).",'".real($f['popis'])."','".real($f['uryvok'])."'),"; } $ret=rtrim($ret," ,"); $proto[]=$ret; } return $proto; } vsetkych je vsetkych v tabulke, funcs_fetch je mysqli_fetch_assoc |
||
Časová prodleva: 3 roky
|
0