Just nu i M3-nätverket
Gå till innehåll

Begränsat antal variablar


Pålleman

Rekommendera Poster

Hejsan igen.

 

Håller på med en maskindatabas, och tanken slog mig om det finns nån maxgräns för hur många variablar man kan skicka varje gång. Just nu är jag uppe i över 20 input fält, varav två är fil upload (för att ladda upp bilder). X antal variablar ingår också...

 

Borde jag dela upp sidan istället och mata in uppgifterna separat?

 

Hare gott//Pålle

 

Länk till kommentar
Dela på andra webbplatser

Det finns ingen gräns för antalet variabler, men väl en gräns för den totala storleken, i bytes.

 

För det första ska du använda dig av method=POST i ditt formulär (vilket jag antar att du redan gör, annars fungerar inte filuppladdningar).

 

Titta sedan i din php.ini-fil efter följande värden:

upload_max_filesize

post_max_size

memory_limit

De ska vara i storleksordningen:

upload_max_filesize <= post_max_size <= memory_limit

 

Den du ska se upp med i detta fall är alltså först och främst post_max_size. Som standard är denna 8MB, vilket borde räcka gott.

 

Du kan även behöva ändra dessa värden, om du har stora filer som du laddar upp:

max_input_time

max_execution_time

 

Länk till kommentar
Dela på andra webbplatser

Japp, använder "POST" i formuläret.

 

Nu är det så att jag har databasen på ett webbhotell, och vet inte exakt vad de tillåter. Men med hjälp av php info fick jag fram att upload_max_filesize = 2M. Om de övriga hittade jag inget, men jag tar för givet att allt ska vara i sin ordning.

 

Ska bråka vidare ett tag till, får nämligen inte in nån data i MySql databasen (bestående av 22fält).

 

Jag återkommer när det inte finns nå mer hår att slita från huvudet :)

 

//Pålle

 

Länk till kommentar
Dela på andra webbplatser

Om du sparar filer i en MySQL-tabell (eller annan data som tar stor plats), så ska du tänka på att MySQL har en buffert kallad max_allowed_packet. Som standard ligger denna runt 1MB, vilket betyder att dina SQL-fråga inte får vara längre än just detta värde.

 

Inte informationen som ska sparas, utan hela frågan.

 

Om du vill spara större mängd, så får du göra det i omgångar.

 

För att spara en stor fil kan det exempelvis se ut så här (inte fullt fungerande, men du förstår metoden):

mysqwl_query("INSERT INTO tabell (id,data) VALUES(1,'')");
$buffer = 700000; // Bytes
$fp = fopen(...);
while (!feof($fp))
{
$str = fread($fp, $buffer);
mysqwl_query("UPDATE {$this->tabell_media} SET data = CONCAT('{$str}') WHERE id = '1'");
}

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...