1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Missing argument 2 for wpdb::prepare() - Aber warum?

Dieses Thema im Forum "Allgemeines" wurde erstellt von bakterius, 5. August 2013.

  1. bakterius

    bakterius Member

    Registriert seit:
    27. September 2012
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo zusammen

    Ich steh mal wieder gewaltig auf dem Schlauch.
    Mein Plugin generiert seit dem Update auf Wp 3.6 folgende PHP Warnmeldung:
    FastCGI: server "/var/run/hcgi/19306" stderr: PHP Warning: Missing argument 2 for wpdb::prepare(), called in /xxxx/xxxx/www/xxxx/wp-content/plugins/milizfeuerwehr-daten/milizfeuerwehr-daten.php on line 800 and defined in /xxxxx/xxxxx/www/xxxxx/wp-includes/wp-db.php on line 992

    Eins vorweg, diese Seite hier (Blog WPDE) ist mir durchaus bekannt, nur hilft sie mir nicht weiter.

    Hier mal mein Code:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Zeile 800 habe ich fett markiert.
    Wo genau liegt hier der Hund begraben?

    LG Bakterius
     
  2. derheimwerker

    derheimwerker Well-Known Member

    Registriert seit:
    5. Dezember 2012
    Beiträge:
    271
    Zustimmungen:
    0
    Der zweite Parameter für prepare muss ein Array mit den Werten sein, mit denen die %...-Platzhalter ersetzt werden.

    Ich glaube, Du hast in dem Aufruf einiges durcheinander geworfen..
     
  3. formateins

    formateins Gast

    1. Richtig, der (oder die) Parameter für prepare fehlt.

    Beispiel aus dem Codex:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    %d gibt den Integer zurück, %s den String.

    2. Probier das mal mit einer sinnvolleren Schreibweise (Beispiel):

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    3. Versuchs erstmal ohne prepare mit einem einfachen query. :)

    PS: Dein Problem ist hier exakt erklärt: http://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/ ;)
     
    #3 formateins, 5. August 2013
    Zuletzt von einem Moderator bearbeitet: 5. August 2013
  4. bakterius

    bakterius Member

    Registriert seit:
    27. September 2012
    Beiträge:
    15
    Zustimmungen:
    0
    Danke für Deine Antwort.
    Ich werde es mal mit einem Array versuchen.
    Gem. dieser Seite können aber mehrere Parameter hintereinander angegeben werden.
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Was meinst Du mit durcheinandergeworfen?
    Die Abfrage liefert genau das Ergebnis, was ich erwarte.

    Gruss
    Bakterius
     
    #4 bakterius, 5. August 2013
    Zuletzt bearbeitet: 5. August 2013
  5. bakterius

    bakterius Member

    Registriert seit:
    27. September 2012
    Beiträge:
    15
    Zustimmungen:
    0
    Das wars, danke :)
    Ich habe die Parameter wohl mitgegeben, allerdings vor statt nach der Klammer. Deshalb kam die Fehlermeldung. Die Parameter wurden aber trotzdem brav übergeben und das Statement funktionierte einwandfrei.

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Der Text wurde durch das Forum so verworfen. Die Schreibweise ist eingentlich genau so.

    Ohne prepare ein Select Count über mehrere Tabellen? Wüsste nciht wie das gehen soll.

    Jein. Das Problem allgemein wird zwar hier erklärt, nur war mein Problem, dass ich die Parameter am falschen Ort übergeben habe.
    Lustigerweise hat das trotzdem funktioniert. Frag mich aber bitte nicht warum.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden