MySQL nimmt in bestimmer Tabelle keine neuen Zeilen an

Hallo zusammen!

Ich bin auf etwas Eigenartiges gestossen. Nach dem Rumspielen an der Zeichencodierung meiner Tabelle “games” bin ich nun nicht mehr in der Lage, in dieser neue Werte einzufügen, weder über phpmyadmin noch über eigenen PHP-Code.

Das eigenartige daran ist, dass php mir keinen Fehler zurückgibt, ebensowenig phpmyadmin (Der teilt mir sogar mit, das eine Zeile erfolgreich eingefügt worden sei). Auf einer lokalen XAMPP-Installation mit dem exakten PHP-Dump sowie in beliebigen anderen Tabellen ist das Einfügen problemlos möglich.

Nachfolgend ein Proof-of-Concept:

[code]<?php

error_reporting(E_ALL);

mysql_connect(“localhost”, “user”, “password”) or die(mysql_error());
mysql_select_db(“db”) or die(mysql_error());

// funzt nicht
mysql_query(“INSERT INTO games (user_id, word_id, wordlist_id) VALUES (‘1’, ‘1’, ‘1’)”) or die(mysql_error());
echo mysql_error();

// funzt auch nicht
mysql_query(“INSERT INTO games (user_id, word_id, wordlist_id, tries, max_tries, input, won) VALUES
(‘1’, ‘1’, ‘1’, 1, 5, ‘abc’, 0)”) or die(mysql_error());
echo mysql_error();

// problemlos möglich
mysql_query(“INSERT INTO words (value) VALUES (‘test’)”) or die(mysql_error());
echo mysql_error();
echo “kein mysql error? es sollte alles funktionieren…”;

?>
[/code]

Laut bplaced Support sei ein Fehler in ihrem System auszuschliessen. Hat jemand ne Ahnung, an was es sonst liegen könnte?

Danke im Vorraus!

Hallo,

Versuch es mal mit:

mysql_query("INSERT INTO games (user_id, word_id, wordlist_id, tries, max_tries, input, won) VALUES ('1', '1', '1', '1', '5', 'abc', '0')") or die(mysql_error()); echo mysql_error();
Bin nicht der MySQL Experte, jedoch geht’s bei mir immer so - ohne Probleme über 40’000 Einträge

Mit solchen:
(‘1’, ‘1’, ‘1’, 1, 5, ‘abc’, 0)") insert’s arbeite ich nicht.

Gruss fishi

Gehören denn Zahlen, wenn man unterstellt, dass diese Spalten als INT geführt werden, wirklich in Anführungszeichen?

Wenn’s als wirklich als INT in der Tabelle definiert ist, dann sind die Hochkommas unnötig.

Zuerst mal danke für die Antworten.

Was die Hochkommas angehen, an den Queries habe ich alles Mögliche ausprobiert. Gleiches Resultat. Auf lokalem XAMPP funktionierts bestens, andere Tabellen machen auch keine Probleme.

Konnte den Fehler auch durch Kollationsänderung an anderen Tabellen nicht mehr replizieren. Die Tabelle “games” will einfach keine neuen Werte aufnehmen, gibt mir trotzdem keine Fehlermeldung o.Ä. aus.

Laut fishi’s 40’000 Einträgen kanns ja wohl kaum an einer Beschränkung liegen, zudem meine “games” Tabelle noch leer ist.

Weiss nicht was ich sonst noch unternehmen könnte, Ideen und eine Überprüfung meiner SQL-Daten durch einen Bevollmächtigten wären sehr willkommen. :wink:

Probier die nicht funktionierenden Queries mal in PHPMyAdmin aus.

Vielleicht habe ich mich nicht klar genug ausgedrückt.

Dies trifft sowohl für das automatische Einfügen über das “Einfügen-Menu” sowohl für das Einfügen mittels SQL-Menu zu. Bei allen anderen Tabellen ausser “games” funktionieren beide Methoden problemlos. Nur die Tabelle “games” bereitet Probleme.

könnte dir höchstens anbieten das ich das mal mit eigenen Augen sehe^^ A.k.a. TeamViewer^^
Es gibt eigl. nur 2 Möglichkeiten, A. es wurde alles eingefügt, B. es gibt einen Fehler. Ne Mischung aus beiden ist eigl. unmöglich xD

Danke für die Antworten.

Genervt vom Rumprobieren habe ich den Hoster gewechselt, bei dem alles reibungslos und ohne grosse Anpassungen funktioniert (mit exakt gleichem Quellcode etc.).

Thema darf geschlossen werden :wink:

ich will jetz nicht trolln oder sowas, aber eigtl beendet man sql statements mit ";"
In den statements finde ich das nicht…

Da das statement dann nicht abgeschlossen ist, wartet das dbms auf die beendigung der transaktion, ergo keine fehlermeldung. Außerdem kein Input in die DB , da die transaktion nicht abgeschlossen ist, oder irre ich mich?

Nur mal so in raum geworfen…

:wink:

Ich will jetzt nicht beleidigen oder so, aber wer lesen kann, ist klar im Vorteil :wink:

Ja grundsätzlich hast du natürlich recht. Kommt aber gar nicht mehr drauf an, Hoster ist gewechselt.

[quote=“rumbel”]ich will jetz nicht trolln oder sowas, aber eigtl beendet man sql statements mit ";"
In den statements finde ich das nicht…
[][/quote]willst du mehr als 1 Statement, dann musst du diese mit nem colon trennen, ansonsten ist es egal. Ende eines Statements ist entweder nen “;” oder eben das Ende des Query^^

… wieder was gelernt…

:wink: