• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warning: var_dump() expects...

Warning: var_dump() expects at least 1 parameter, 0 given in....

So lautet die Meldung?
die Abfrage habe ich bei phpmyadmin geprüft und ist i.o.

PHP:
<?php
$ergebnis = mysql_query("SELECT * FROM Erotikideen WHERE url ='[" . mysql_real_escape_string($_GET['SQL']) . "]' AND (Veroeffentlicht = 1)");
$row = mysql_fetch_object($ergebnis);
echo ($_GET['SQL']);
var_dump();

echo'
<div class="idee-box">
         <div class="glowtext_idee-box">' ,$row->Idee, '</div>
         <div class="absatz">' ,$row->Inhalt,'
         </div>
</div>';
?>

In diesem Fall ($_GET['SQL'])=airbag
 
Die Warnung sagt es doch ziemlich genau. var_dump braucht mindestens einen Parameter, du hast es allerdings komplett ohne Parameter aufgerufen (Zeile 5).
 
upps

var_dump($row) meldet bool(false)

und was bedeutet das?
Die Datenbank läuft auf MyISAM
Abfrage mit manueller Eingabe (mit ausnahme vom GET...) geprüft
Das GET wird im echo korrekt ausgegeben.
 
mysql_fetch_object liefert der Reihe nach (bei jedem neuen Aufruf der Funktion) ein Element des Resultsets der Query. Ist das Resultset vollständig durchlaufen, gibt die Funktion false zurück.

In deinem Fall gibt mysql_fetch_object bereits beim ersten Aufruf false zurück. Das bedeutet, dein Resultset ist leer.

Überprüfe deine Query. Lass sie dir vielleicht mal ausgeben.
 
Dann scheint in $row nichts zu stehen, das heißt es gibt entweder einen Fehler in dem query oder es gibt einfach keine Einträge, die dem Muster entsprechen.


Ersteres überprüft man Beispielsweise, indem man den query-Aufruf etwas anpasst:
PHP:
mysql_query(…) OR die(mysql_error());

Letztes kannst du mithilfe von [phpnet]mysql_num_rows[/phpnet] überprüfen.
 
Da ich hinweise bekommen habe das ich mit
mysql_query($ergebnis) OR die(mysql_error());
doppelt abfrage und dann nichts drin steht habe ich diese Zeile mal auskommentiert und nun wird mit der Provisorischen Angabe 'airbag' auch das richtige ausgegeben.

doch wenn ich 'airbag' gegen '[" . mysql_real_escape_string($_GET['SQL']) . "]' austausche werden keine Werte angezeigt.
obwohl durch echo ($_GET['SQL']) bewiesen wird das ($_GET['SQL']) = airbag ist und dann müsste das doch mit mysql_real_escape_string übergeben werden. Oder täusche ich mich? Wieso kann ich nicht einfach . ($_GET['SQL']) . schreiben?
 
ich habe nun auch mal über echo nach gesehen was in dem Get-String (oder wie man das nennt) steht.
Und siehe da.... auch dort steht "airbag"

warum wird dann nur wenn ich "airbag" in der Abfrage direkt eintrage das erwartete Ergebnis ausgegeben.

Der Link von der verweisende Seite gibt über ....&SQL=airbag den Parameter.
Das wird durch die echos bestätigt.
Dann muss doch die Abfrage auch das Ergebnis auswerfen das ich erwarte.

PHP:
<?php
echo ($_GET['SQL']) ,'  ';  // ergebnis "airbag"
echo (mysql_real_escape_string($_GET['SQL'])); // ergebnis "airbag"

$ergebnis = mysql_query("SELECT * FROM Erotikideen WHERE url ='[" . mysql_real_escape_string($_GET['SQL']) . "]' AND (Veroeffentlicht = 1)");
$row = mysql_fetch_object($ergebnis);
// mysql_query($ergebnis) OR die(mysql_error());
// var_dump($row);

// [" . mysql_real_escape_string($_GET['SQL']) . "]

echo'
<div class="idee-box">
         <div class="glowtext_idee-box">' ,$row->Idee, '</div>
         <div class="absatz">' ,$row->Inhalt,'
         </div>
</div>';
?>
 
Zuletzt bearbeitet:
Nur wenn Du in dem Feld "url" tatsächlich auch eckige Klammern hast. Beispiel:

Code:
[http://www.example.com]

Sieht dein Eintrag in der Datenbank wirklich so aus, oder nicht doch so

Code:
http://www.example.com

Wenn letzteres, dann musst Du dein Statement natürlich anpassen - also die eckigen Klammern entfernen.
 
die äußeren eckigen Klammern ja das wars.
Ich habe den Ausdruck aus einem anderen Zusammenhang heraus genommen. Doch dort hatte ich
REGEXP '^[" . mysql_real_escape_string($_GET['SQL']) . "]
und habe nur ^ entfernt. Ich hatte nicht daran gedacht das diese im Zusammenhang mit REGEXP stehen.
 
Das mysql_real_escape_string ist nur eine Schutzmaßnahme gegen SQL-Injections; Kannst dich zu dem Thema ja mal ein wenig informieren.



Wieso hast du in der Abfrage eigentlich die eckigen Klammern gesetzt? Du sagst dass die Suche mit "airbag" funktioniert, wieso suchst du dann nach "[airbag]"?
 

Neueste Beiträge

Zurück
Oben