2016-08-05 6 views
0

mit Ich benutze Wordpress, und ich bin eine Abfrage durchführen, die mich wieder diesen Fehler gibt:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Meine Anfrage wie folgt aussieht:

global $wpdb; 
     $session_uid = isset($_POST["session_uid"]) ? trim(strip_tags($_POST["session_uid"])) : ""; 
     $the_data = isset($_POST["the_data"]) ? trim(strip_tags($_POST["the_data"])) : ""; 
     $ss = "select * from ".$wpdb->prefix."vp_pms_messages inner join ".$wpdb->prefix."vp_pms_group_users on ".$wpdb->prefix."vp_pms_messages.id = ".$wpdb->prefix."vp_pms_group_users.message_id and ".$wpdb->prefix."vp_pms_messages.group_id = ".$wpdb->prefix."vp_pms_group_users.group_id where ".$wpdb->prefix."vp_pms_group_users.from_username = '$session_uid' and ".$wpdb->prefix."vp_pms_group_users.from_del = '0' or ".$wpdb->prefix."vp_pms_group_users.to_username = '$session_uid' and ".$wpdb->prefix."vp_pms_group_users.to_del = '0' group by ".$wpdb->prefix."vp_pms_messages.group_id"; 
     $check_last_conversation = $wpdb->get_results($ss); 
     $response = print $check_last_conversation; 

Ich vermisse oder missverstanden wahrscheinlich etwas, aber wenn ich $check_last_conversation und ich print etwas wie "Hallo" auskommentieren, verschwindet der Fehler.

Das ist ok:

global $wpdb; 
    $session_uid = isset($_POST["session_uid"]) ? trim(strip_tags($_POST["session_uid"])) : ""; 
    $the_data = isset($_POST["the_data"]) ? trim(strip_tags($_POST["the_data"])) : ""; 
    //$ss = "select * from ".$wpdb->prefix."vp_pms_messages inner join ".$wpdb->prefix."vp_pms_group_users on ".$wpdb->prefix."vp_pms_messages.id = ".$wpdb->prefix."vp_pms_group_users.message_id and ".$wpdb->prefix."vp_pms_messages.group_id = ".$wpdb->prefix."vp_pms_group_users.group_id where ".$wpdb->prefix."vp_pms_group_users.from_username = '$session_uid' and ".$wpdb->prefix."vp_pms_group_users.from_del = '0' or ".$wpdb->prefix."vp_pms_group_users.to_username = '$session_uid' and ".$wpdb->prefix."vp_pms_group_users.to_del = '0' group by ".$wpdb->prefix."vp_pms_messages.group_id"; 
    //$check_last_conversation = $wpdb->get_results($ss); 
    $response = print 'hello'; 

Also nehme ich an gibt es einige Probleme, wie ich meine Abfrage geschrieben habe.

$ss = "select * from ".$wpdb->prefix."vp_pms_messages inner join ".$wpdb->prefix."vp_pms_group_users on ".$wpdb->prefix."vp_pms_messages.id = ".$wpdb->prefix."vp_pms_group_users.message_id and ".$wpdb->prefix."vp_pms_messages.group_id = ".$wpdb->prefix."vp_pms_group_users.group_id where ".$wpdb->prefix."vp_pms_group_users.from_username = '$session_uid' and ".$wpdb->prefix."vp_pms_group_users.from_del = '0' or ".$wpdb->prefix."vp_pms_group_users.to_username = '$session_uid' and ".$wpdb->prefix."vp_pms_group_users.to_del = '0' group by ".$wpdb->prefix."vp_pms_messages.group_id"; 

Sagte, dass ich den Fehler nicht sehen kann.

  • Mein apache_error.log und mysql_error_log.err berichten nicht alles über.
  • Meine Tabellen sind jetzt leer, aber sollten sie nichts drucken, als diesen Fehler zu erzeugen.

Können Sie bitte etwas vorschlagen?

EDIT

ich diesen Fehler in meiner Konsole

enter image description here

MySQL-Tabelle leer

enter image description here

My Wordpress Debug sehen ist aktiv wie:

enter image description here

Meine debug.log Datei (wp-content) zeigt keinen Fehler in meinem Code.


Ich habe entdeckt, dass es in der gleichen Datei von meiner Anfrage ein fataler Fehler ist:

PHP Fatal error: Call to undefined function get_bloginfo()

konnte ich überprüfe es Trog das Server PHP-Fehlerprotokolls. Die Arbeit an MAMP können Sie es hier finden:

MAMP/logs/php_error.log

In meinem Fall Wordpress haben Sie uns das nicht in wp-content/debug.log. Also weißt du. Es führt mich zu der Schlussfolgerung, dass meine Datei.php WordPress-Hooks nicht erkennt und auch für $ wpdb während meiner Abfrage passieren könnte.

+0

change '$ response = print $ check_last_conversation;' zu 'print_r $ check_last_conversation);' –

+0

@ArshSingh versuchte aber nichts! Ich bekomme das Gleiche. – XiLab

+0

lies meine Antwort unten. –

Antwort

1

Bei der Entwicklung drehen immer auf der Fehlerberichterstattung bewusst warningsnotice oder fatal errors zu sein, die sehr leicht, wenn man etwas vergessen auftreten können oder Ort etwas verpassen. So besser zu wissen oder Fehler und schalten Sie die Fehlerberichte auf die Fehler zu sehen und in der Produktion deaktivieren Sie die Fehler melden.

go into wp-config.php file and search for : define('WP_DEBUG',false); and change it to define('WP_DEBUG',true);

Selbst wenn Ihre Abfrage in Ordnung ist, können Sie immer noch zu einem Fehler führen, die Sie falschen Druck eines Arrays immer aufgrund werden:

Funktion get_results von $wpdb, ist eine Funktion, die zurück ein Array als Ergebnis von Mehr Zeilen und für Dumping sie verwenden:

print_r($check_last_conversation); 

oder

var_dump($check_last_conversation); 

print 'hello; funktioniert, weil es eine Zeichenfolge ist, und $check_last_conversation ist ein Array. Wickeln Sie die print_r oder var_dump oder print oder echo nicht in eine Variable. wie sie die Daten innerhalb von Variablen drucken sollen.

Wenn Sie weitere Fehler haben, können Sie sich die Fehler ansehen, indem Sie die Fehlerberichte aktivieren.

+0

Ich habe alles versucht, was Sie vorgeschlagen haben, ich benutze sogar Abfrage-Monitor, um alle meine PHP-Warnungen und Probleme zu überprüfen, aber nichts! Ich bin irgendwie verloren. – XiLab

+0

Bitte aktivieren Sie Fehlerberichte und veröffentlichen Sie den Fehler, den Sie auf Ihrem Bildschirm erhalten. Folgen Sie der Anleitung in meiner Antwort über das Debugging in WordPress einschalten –

+0

Ja, ich bearbeite meine Frage! – XiLab

0

Als OP erwähnt, dass er an externen Wordpress-Skript arbeitet und nicht auf seine Wordpress-Funktionalität zugreifen kann. Um sicherzustellen, dass Sie Ihre Wordpress-Funktionalität in Ihren externen Dateien beibehalten, geben Sie am Anfang Ihrer externen Skriptseite den folgenden Code ein.

$path = $_SERVER['DOCUMENT_ROOT']; 
include_once $path . '/wp-load.php'; 

Die obigen Zeilen enthalten alle Wordpress-Funktionen für Ihr Skript. $path Variable speichert den Pfad Ihres Wordpress-Installationsordners.

Verwandte Themen