m@rtin: [MySQL] Supplied argument is ...

Hallo,
ich habe ein kleines Problem:

ich habe folgenden Code

(14) $connection = mysql_connect("$dbhost", "$dbuser", "$dbpwd");
(15) if(!$connection) die("<b>Fehler auf der Seite: Es konnte keine Verbindung zur Datenbank hergestellt werden!</b>");
(16) if(! mysql_select_db("$dbname", $connection) ) die("<b>Fehler auf der Seite: Datenbank konnte nicht ausgewählt werden!</b>");
(17)
(18) function get_setting ($variable)
(19) {
(20)  $result = mysql_query("SELECT setting FROM school_config WHERE variable = $variable");
(21)  $setting = mysql_fetch_array($result);
(22) return $setting[$variable];
(23) }
(24)
(25) $title = get_setting ("title");

als Ergebnis kommt folgendes heraus:

Warning: Supplied argument is not a valid MySQL result resource in ... /config.php on line 21

Woran kann das liegen?

Ciao,
m@rtin

  1. Hi,

    Woran kann das liegen?

    am Statement in Zeile 20, welches kein sinnvolles Ergebnis lieferte - möglicherweise gab es dort einen SQL-Fehler. Lass Dir das Statement selbst auf dem Bildschirm ausgeben, überprüfe es auf syntaktische und semantische Korrektheit und probiere es ggf. an einer Shell (PHPMyAdmin z.B.) aus (Copy & Paste).

    Cheatah

  2. Hi,

    [Quoting umgestellt]
    Woran kann das liegen?

    (20)  $result = mysql_query("SELECT setting FROM school_config WHERE variable = $variable");

    Daran. $variable in Hochkommata einschließen, fertig :)

    Bye,
    Peter

    1. Moin,

      außerdem fehlt da glaube ich ich noch ein Semikolon, oder? So daß es dann $result = mysql_query("SELECT setting FROM school_config WHERE variable = '$variable';"); heißen müßte.

      Die Fehlermeldung kommt zB dann, wenn Du ein feld aus einer Tabelle selektieren willst, was es nicht gibt. Genau den Effekt erreichst Du ja auch mit den vergessenen Kochkommata.

      Greetz,
      Andreas

      1. Hi,

        außerdem fehlt da glaube ich ich noch ein Semikolon, oder? So daß es dann $result = mysql_query("SELECT setting FROM school_config WHERE variable = '$variable';"); heißen müßte.

        Nein, mit ist es vielleicht logisch, es geht aber auch ohne.

        Bye,
        Peter

        1. Moin,

          gibt es denn eine Logik, wann ich das Semikolon benötige und wann nicht? Jetzt mal weniger auf PHP als denn auf MySQL bezogen? Use database und ein zwei andere Befehle zB gehen ja auch ohne...

          Greetz,
          Andreas

          1. Hi,

            gibt es denn eine Logik, wann ich das Semikolon benötige und wann nicht? Jetzt mal weniger auf PHP als denn auf MySQL bezogen? Use database und ein zwei andere Befehle zB gehen ja auch ohne...

            Ich kenn keine, bei PHP hab ich bisher immer eines benötigt, und
            bei SQL net.

            Bye,
            Peter