Ich benutze PHP und MySQL. Ich habe den folgenden PHP-Code:MySQL vorbereitete Anweisung generiert internen Server Fehler
$stmt = $this->db_connect()->prepare(
"SELECT P.`pool_id`, P.`pool_name`, PL.`player_id`, PL.`alias`, PP.`paid` "
."FROM `pool` AS P, `player_pool` AS PP, `players` AS PL "
."WHERE P.`sponsor` = ? "
."AND P.`pool_id` = PP.`pool_id` "
."AND PP.`player_id` = PL.`player_id` "
."ORDER BY P.`pool_name`, PL.`alias`;");
echo "validated_user_id=".$_SESSION['validated_user_id'].PHP_EOL;
echo "stmt=".($stmt == null);
$stmt->bind_param("i", $_SESSION['validated_user_id']);
Es gibt kontinuierlich 500 Internal Server Error zurück. Die Protokolle zeigen [23-Sep-2016 00:05:06] PHP Schwerwiegender Fehler: Aufruf einer Memberfunktion bind_param() auf einem Nicht-Objekt. Die valided_user_id hat einen gültigen Wert, aber die Variable $ stmt ist null.
Zuerst dachte ich, ich benutze ein reserviertes Wort, also entkam ich allem - kein Erfolg. Ich habe viele andere DB-Abfragen, die sehr ähnlich aussehen, die gerade gut funktionieren ...
Was mich wirklich verbrennt ist, dass der exakt gleiche Code funktioniert gut auf meinem lokalen Arbeitsbereich - dieser Fehler erscheint nur auf dem Host. Tatsache ist, ich habe keine Ahnung, wonach ich suchen muss, um herauszufinden, warum - bitte helfen Sie mir.
Das Problem gefunden - es gab einen sehr kleinen Unterschied im Namen einer der Spalten, die nicht auf dem Host war.
Das erste, was zu tun ist, aus dieser Aussage zu drucken, um zu sehen, ob es in Ordnung ist. – e4c5
Bitte beachten Sie diesen Link http://www.w3schools.com/php/php_mysql_prepared_statements.asp –
Werfen Sie einen Blick auf die Version des MySQL-Servers sowohl lokal als auch auf dem Remote-Host. – Havelock