mysql_fetch_object(): supplied argument is not a valid MySQL result resource...

Guten Abend,

ich habe ein Problem. Bei mir kommt folgende Fehlermeldung:

mysql_fetch_object(): supplied argument is not a valid MySQL result resource in on line 20

Was hat diese zu bedeuten? Was mache ich falsch?

[PHP]// Datenbank + Zugangsdaten festlegen
$db = mysql_connect(‚localhost‘,‚root‘,‚‘);
mysql_select_db(‚test‘);

// Datenbankdaten überprüfen
if (!$db) {
die('Verbindung nicht möglich : ’ . mysql_error());
}

// Main Device
$sql = „SELECT * FROM settings WHERE option = ‚dev_root‘“;
$query = mysql_query($sql);

while ($row = mysql_fetch_object($query)) {
$dev_root = $row->value;
}

$dev_root = $dev_root;[/PHP]

Danke!
xSTVNx

Dein Problem wird offenbar dadurch verursacht, dass dein SQL-Statement nicht ausgeführt werden konnte. Warum und wieso, das kannst nur Du wissen. Du müsstest sicherstellen, dass das Statement auch tatsächlich ausgeführt wird. Und wenn nicht, dann schau nach was falsch ist. Die Funktion mysql_error() solltest Du dir dazu mal anschauen.

Wie denn?

Hab die mysql_error() probiert, doch da wird mir kein Fehler angezeigt. :confused:

Aber in meinem geposteten Code ist kein Fehler bzw. daran kanns definitiv nicht liegen?

Wie sieht denn dein Code aus wo Du zur Ausführung des Statements mysql_error() verwendet hast?

Ist aber bestimmt Quatsch, oder? :smiley:

[PHP]// Datenbank + Zugangsdaten festlegen
$db = mysql_connect(‚localhost‘,‚root‘,‚‘);
mysql_select_db(‚test‘);

// Datenbankdaten überprüfen
if (!$db) {
die('Verbindung nicht möglich : ’ . mysql_error());
}

// Main Device
$sql = „SELECT * FROM settings WHERE option = ‚dev_root‘“;
$query = mysql_query($sql);

if (!$query) {
die(mysql_error());
}

while ($row = mysql_fetch_object($query)) {
$dev_root = $row->value;
}

[/PHP]

Kanns theoretisch auch an der SQL-Datenbank an sich liegen? (Also z.B. falscher Name, gar nicht erstellt, usw.) Oder würde sich das anderweitig bemerkbar machen?

Sollte theoretisch auch gehen. Besser wäre

[php]$query = mysql_query($sql) or die(mysql_error());[/php]

Wenn in dem SQL-Statement Spalten oder Tabellen vorkommen die nicht existieren, würde mysql_error() dazu Hinweise liefern. Alternativ kannst Du das Statement auch in phpmyadmin mal manuell ausführen um zu sehen was dabei heraus kommt.

So habe den Fehler nun gefunden. Es lag an der fehlenden Tabelle (war in der falschen DB drin, drum hab ichs nichts sofort gemerkt.)

Und danach lags an dem Spaltennamen „option“, dieser ist vom SQL bereits reserviert.

Danke für deine Mühe! <3