Olen saanut nyt foorumini jonkinmoiseen kuntoon ja ajattelin laittaa tietokantaan muutaman viestin testatakseni foorumin nopeuden...
kirjoitin skriptin joka for loopilla kirjoittaa tietokantaan 10000 uutta aihetta. Kumminkin aina, kun se on kirjoittanut 127 viestiä tulee virheilmoitus "Out of range value adjusted for column 'id' at row 1" .
Tässä PHP koodi:
<?php $yhteys = mysql_connect("localhost", "******", "******") or die (mysql_error()); mysql_select_db("foorumi", $yhteys) or die(mysql_error()); for($i=0; 1 < 10000; $i++) { $f = rand(1, 3); $aaa = "INSERT INTO aiheet(otsikko, aika, muokattu, nimi, foorumi, id, viimeksi, nimi_id, viimeksi_id) VALUES ('joku $i', now(), now(), 'Akseli', '$f', '$i', '$nimi', '1', '1')"; $onks = mysql_query($aaa, $yhteys) or die("1: " . mysql_error()); $bbb = "INSERT INTO viestit(aika, nimi, nimi_id, viesti, id, foorumi) VALUES (now(), 'Akseli', '1', '$viesti', '$i', '$f')"; $onkd = mysql_query($bbb, $yhteys) or die("2: " . mysql_error()); } mysql_close($yhteys); php?>
Tyhjensin taulut ennen tallentamisen aloittamista. Missä saattaisi olla vika?
Onko tuo for-ehto oikein, vai onko siihen päässyt livahtamaan typo?
for($i = 0; 1 < 1000; $i++){ pitäisi varmaan olla? for($i = 0; $i < 1000; $i++){
Jep, siinä tosiaan oli pikku kirjoitusvirhe... mutta varsinaista ongelmaa se ei vieläkään korjannut...
Mahtaiskohan indexeillä olla jotain tekemistä tämän kanssa...?
Edit: No sainkin jo vastauksen kuhasta, kiitti kumminkin avusta
Yleisen käytännön mukaan ratkaisu täytyy laittaa myös tänne foorumille, koska olet sen täällä kysynyt, eli pistäpä se vastaus esille, jos muillakin on samantapainen ongelma.
Liekkö ollut kyseessä vääräntyyppiseksi määritelty sarake, jolloin isommat luvut eivät ole mahtuneet liian pieneen kenttään.
Aihe on jo aika vanha, joten et voi enää vastata siihen.