php einmal laufen und zweimal einfügen in mysql-Datenbank

Ich habe einen einfachen code, der unten. Nachdem es einmal ausgeführt wird, fügt er die Ergebnisse zweimal in die mysql-Datenbank.

wenn Sie zweimal ausgeführt wird, oder die Anfrage zweimal base auf 1 refresh auf der Seite, warum die Ausgabe ist nur 1 Ergebnis?

Ich war googeln für den ganzen Tag und kämpfen um dieses Problem zu beheben. Aber ich konnte nicht herausfinden, was ist falsch an diesem code. Der code läuft perfekt auf localhost, aber nachdem es auf den server verschoben, das problem auftaucht. Hat jemand konfrontiert, so etwas wie dieses vor? Wie kann dieses problem gelöst werden?

VOLLSTÄNDIGEN CODE:

<?php
$db=mysql_connect('localhost','zzzzzzz','xxxxxx') or die('Unable to connect.'.mysql_error());
mysql_select_db('test',$db) or die(mysql_error($db));

$sql="INSERT INTO test_table(value,insert_time) VALUES ('testing','".time()."')";
$result=mysql_query($sql);
echo "result=".$result;

$select="select * from test_table";
$rs=mysql_query($select);
while($row=mysql_fetch_array($rs)){
echo $row["test_id"]." -- ".$row["value"]." -- ".$row["insert_time"]."<br />";
}
?>

ERGEBNIS:
Ergebnis=1
1 -- testen -- 1298185509

, ABER IN DER DATENBANK:
test_id , Wert , insert_time
1 für die Prüfung , 1298185509
2 , Prüfung , 1298185511

Haben Sie geprüft, Ihre HTTP-Protokoll, um sicherzustellen, dass es wirklich nur einmal ausgeführt? Der browser könnte Sie mehr Anfragen, als Sie erwartet haben. Dies gilt insbesondere, wenn Ihre Seite nicht ausgeben, sinnvolle html-Code (den ich nicht sehen, die oben zu tun). Im Allgemeinen verlassen Sie sich nicht auf die Anzahl der Male, die ein browser sendet eine GET-Anfrage; Sie sollten wiederholbar sein ohne schlechte Nebenwirkungen (idempotent)
haben Sie versucht, WERTE zu schätzen und den Namen des Feldes value zu value
Seien Sie besonders vorsichtig bei der browser-debugging tools wie Firebug, die Mai-Ausgabe eine Anfrage mehr als einmal
Die Zeit, die Differenz von zwei Sekunden ist eher ein Zeichen, dass es eigentlich zwei HTTP-requests.
Aber..löschst du die DB nach jedem laden der Seite? weil in WÄHLEN Sie eine while-Schleife, also: 1. laden: fügen Sie einen Datensatz und dann abrufen aller Datensätze in der db (ohne where-Bedingung) - es gibt nur einen Datensatz. 2. laden: fügen Sie EINEN Datensatz, und holt ALLE - thre - 2-Datensätze. 3. laden: fügen Sie einen Datensatz, Holen Sie die 3 nun. Und so weiter..Du bist nicht einfügen zweimal, weil "insert =" Echos einfach mal aus, was ich sehe in deinem code

InformationsquelleAutor nicng | 2011-02-20

Schreibe einen Kommentar