Autor Zpráva
hellmc
Profil
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
Na serveru máte vlastní api?
hellmc
Profil
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
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
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0