Warum führt das einmalige Einfügen in PHP zu zwei Einträgen in der MySQL-Datenbank?
Beim Ausführen des bereitgestellten PHP-Codes auf einem Server kann Folgendes auftreten: ein verwirrendes Problem, bei dem das Einfügen eines einzelnen Datensatzes in eine MySQL-Datenbank zu zwei Einträgen führt. Dieses Problem, das auftritt, wenn der Code auf einem Live-Server, aber nicht auf Localhost bereitgestellt wird, stellt Entwickler vor ein Rätsel.
Der Schuldige hinter dieser Anomalie liegt im Verhalten des Browsers. Beim Aktualisieren der Seite sendet der Browser zwei Anfragen an den Server: eine für das Hauptskript und eine für das Favicon. In dieser Situation wird die Einfügeabfrage zweimal ausgeführt, was zum Einfügen von zwei Datensätzen führt.
Um dieses Problem zu beheben, sollte die Einfügeabfrage auf nur eine der Anforderungen beschränkt werden. Durch die Implementierung einer bedingten Prüfung, die überprüft, ob die Anfrage für das Hauptskript gilt, können Sie verhindern, dass die Abfrage für die Favicon-Anfrage ausgeführt wird.
Hier ist ein geänderter Codeausschnitt, der dieses Problem behebt:
<?php $db = mysql_connect('localhost', 'zzzzzzz', 'xxxxxx') or die('Unable to connect.' . mysql_error()); mysql_select_db('test', $db) or die(mysql_error($db)); // Check if the request is for the main script if ($_SERVER['REQUEST_URI'] == '/script.php') { $sql = "INSERT INTO test_table(value, insert_time) VALUES ('testing', '" . time() . "')"; $result = mysql_query($sql); } $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 />"; } ?>
Durch die Integration dieser bedingten Prüfung wird die Einfügeabfrage nur ausgeführt, wenn das Hauptskript angefordert wird, wodurch sichergestellt wird, dass nur ein einziger Datensatz in das eingefügt wird Datenbank.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich zwei Einträge in meiner MySQL-Datenbank, wenn ich nur einen in PHP einfüge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!