Gelöst: Ich schrieb und getestet ein PHP-Skript auf dem lokalen Server. (Nichts Besonderes, nur 2 aufeinanderfolgende SQL-Einfügungen in der gleichen Datenbank, aber unterschiedliche Tabellen).SQL-Abfrage funktioniert auf Testserver aber nicht leben ... was könnte der Unterschied sein?
Beide Server laufen PHP5 & MYSQL 5.
auf dem lokalen Server werden beide Abfragen korrekt verarbeitet.
Auf dem Live-Server funktioniert nur die erste Abfrage, aber nicht die zweite und ich kann nicht herausfinden, warum. Hier
ist der Code:
$sql_login = "INSERT INTO logintbl
(...)
VALUES (...)";
$result_login = mysqli_query($this->connect, $sql_login);
# Fill contact details
$sql_contactD = "INSERT INTO contactDetails
(...)
VALUES (...)";
$result_contactD = mysqli_query($this->connect, $sql_contactD);
Auf meinem lokalen Server, beide Abfragen return true und die Daten werden in der Datenbank hinzugefügt.
Auf meinem Live-Server funktioniert die erste Abfrage wie erwartet, aber die zweite Abfrage schlägt ohne Fehlermeldung fehl.
Natürlich sind die Tabellenstrukturen auf beiden Servern identisch. Beide Tabellen befinden sich in derselben Datenbank und der Benutzer verfügt über ausreichende Rechte für die Datenbank.
Irgendwelche Hinweise darauf, was könnte falsch sein?
Bearbeiten 1: Berechtigungen: Ja, der Benutzer verfügt über ausreichende Berechtigungen für beide Tabellen.
Edit 2: Ich sehr dumm fühlte, aber im Anschluss an James' Rat mysqli_error() zu prüfen, fand ich heraus, dass der Produktionsserver Groß- und Kleinschreibung in Bezug auf Tabellennamen war, im Gegensatz zu meinem Testserver, und dass Es konvertierte den ursprünglichen Namen meiner Tabelle (contactDetails) in Kleinbuchstaben (Kontaktdetails).
Vielen Dank an alle für Ihre Hilfe.
Haben Sie Ihr mysql-Protokoll auf eine Fehlermeldung überprüft? –
Versuchen Sie auch "SHOW WARNINGS", nachdem Sie die Abfrage ausgeführt haben, die nicht funktioniert. Dadurch werden Informationen zu Warnungen zurückgegeben, die weniger gravierend als Fehler sind und eine Nachricht nur anzeigen, wenn Sie nach einer Nachricht suchen. –
Überprüfen Sie auch die Ausgabe von mysqli_error(). Haben die Test- und Produktionsserver unterschiedliche Einstellungen für magische Anführungszeichen?Andere Einstellungen? –