PHP5 / MySQL5 - Datensätze "verschwinden"

PHP5 / MySQL5 - Datensätze "verschwinden"

am 30.07.2007 19:00:01 von Sebastian Kraus

Mahlzeit.

Ich hab eine PHP Anwendung, die Daten in eine Datenbank schreiben soll.
Diese Datenbank ist ein MySQL 5 Server, eigentlich ganz sinnvoll
konfiguriert, und im Prinzip exzellent funkionierend.

Jetzt schreibe ich in meinem PHP-Script einen INSERT Befehl, welcher
eine Tabelle mit 3 BIGINT-Spalten um einen Datensatz erweitern soll.

Beispiel:
INSERT INTO table (row1, row2, row3) VALUES (1, 2, 3);

Über alle 3 Spalten ist ein Primärschlüssel gesetzt, was bedeutet, dass
die 3 Felder in der Tabelle UNIQUE sein müssen. Andernfalls kommt ein
MySQL Fehler, dass eben dies nicht so ist.


Wenn ich nun diesen Befehl abfeuere, bekomme ich keine Fehlermeldung
geliefert, und der Satz steht in der Datenbank. Der SQL-Befehl per
PHPMyAdmin ausgeführt, liefert ebenfalls das gewünschte Resultat: Der
Datensatz wird der Tabelle hinzugefügt.

Soweit also alles ganz wunderbar.

Sobald das Script fertig ist, ist der Datensatz weg. Ich habe das anhand
eines nebenher laufenden Scripts geprüft, welches jede Zehntelsekunde
prüft, ob ebendieser Wert in der Tabelle steht. Für einen Zeitraum von
etwa 0.3 Sekunden steht der Wert in der Tabelle, und lässt sich mittels
SELECT abfragen.

Sobald dieser Zeitraum vorbei ist, liefert der SELECT-Befehl den
Datensatz nicht mehr.

Die Festplatte bietet noch genügend Platz.
Manuell (phpMyAdmin) eingefügte Zeilen bleiben erhalten.
MySQL, PHP und System-Protokoll zeigen keinerlei Auffälligkeiten.

Ich habe auch meine Scripte dahingehend angepasst, dass sie nur über
eine von mir vorgegebene QUERY-Funktion auf die Datenbank zugreifen
können, die alles minutiös mitprotokolliert.

Während der Scriptlaufzeit ist der Datensatz da, sobald PHP beendet ist,
ist er aus der Tabelle entfernt.

Ich verwende keine Transaktionen, und die MySQL-Verbindung wird mittels
Destruktor in der vorgeschriebenen Art und Weise beendet, mittels
mysql_close (welcher keine Fehlermeldung abliefert).

Auch ein Repair-Table brachten keine Änderung.

Hat irgendjemand eine Idee, was da schief läuft?


MFG
Sebastian Kraus

Re: PHP5 / MySQL5 - Datensätze "verschwinden"

am 30.07.2007 19:41:34 von Claus Reibenstein

Sebastian Kraus schrieb:

> Sobald das Script fertig ist, ist der Datensatz weg. [...]
>
> Ich verwende keine Transaktionen

Das möchte ich ernsthaft bezweifeln. Dieser Fehler ist zu typisch für
nicht abgeschlossene Transaktionen.

Gruß. Claus

Re: PHP5 / MySQL5 - Datensätze "verschwinden"

am 30.07.2007 20:42:01 von Sebastian Kraus

Claus Reibenstein schrieb:
> Sebastian Kraus schrieb:
>
>> Sobald das Script fertig ist, ist der Datensatz weg. [...]
>>
>> Ich verwende keine Transaktionen
>
> Das möchte ich ernsthaft bezweifeln. Dieser Fehler ist zu typisch für
> nicht abgeschlossene Transaktionen.

Es ist eine MyISAM-Tabelle. Die unterstützt gar keine Transaktionen, oder?

MFG
Sebastian Kraus

Re: PHP5 / MySQL5 - Datensätze"verschwinden"

am 30.07.2007 23:03:48 von Andreas Scherbaum

Claus Reibenstein <4spammersonly@web.de> wrote:
> Sebastian Kraus schrieb:
>
>> Sobald das Script fertig ist, ist der Datensatz weg. [...]
>>
>> Ich verwende keine Transaktionen
>
> Das möchte ich ernsthaft bezweifeln. Dieser Fehler ist zu typisch für
> nicht abgeschlossene Transaktionen.

Warum sollten die Datensätze dann aber in den anderen Verbindungen
kurzzeitig auftauchen und dann verschwinden?

Obwohl ich mir auf die ganze Geschichte auch keinen Reim machen
kann und vermute, da liegt irgendwo ein Config- oder Denkfehler vor.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: PHP5 / MySQL5 - Datensätze "verschwinden"

am 31.07.2007 09:15:54 von Claus Reibenstein

Sebastian Kraus schrieb:

> Claus Reibenstein schrieb:
>
>> Sebastian Kraus schrieb:
>>
>>> Sobald das Script fertig ist, ist der Datensatz weg. [...]
>>>
>>> Ich verwende keine Transaktionen
>>
>> Das möchte ich ernsthaft bezweifeln. Dieser Fehler ist zu typisch für
>> nicht abgeschlossene Transaktionen.
>
> Es ist eine MyISAM-Tabelle. Die unterstützt gar keine Transaktionen, oder?

Dann kann es eigentlich nur noch ein Scriptfehler sein. Poste das Ding
doch mal.

Gruß. Claus