Umstieg auf MySQL5: Simple SELECT * geht nicht

Umstieg auf MySQL5: Simple SELECT * geht nicht

am 04.04.2007 11:48:40 von mcclane

Hallo!

Ich bin vor kurzem von PHP4 und MySQL4 auf einen neuen Server mit PHP5
und MySQL5 umgezogen und nun geht die simpelste Abfrage nicht mehr:

$bla_sql=mysql_query("SELECT * FROM tabelle WHERE foo LIKE '$foo' LIMIT 1");
$bla_result=mysql_fetch_array($bla_sql)

if (!$bla_result[id]) {
echo "Fehlermeldung";
}
?>

Hier bekomme ich fortan immer die Fehlermeldung angezeigt, obwohl ein
Ergebnis der Abfrage vorhanden ist.

Woran kann das liegen?

Viele Grüße,

Herbert

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

am 04.04.2007 11:55:20 von Claus Reibenstein

Herbert Bölter schrieb:

> Ich bin vor kurzem von PHP4 und MySQL4 auf einen neuen Server mit PHP5
> und MySQL5 umgezogen und nun geht die simpelste Abfrage nicht mehr:
>
> > $bla_sql=mysql_query("SELECT * FROM tabelle WHERE foo LIKE '$foo' LIMIT 1");

Was steht in $foo?

> $bla_result=mysql_fetch_array($bla_sql)
>
> if (!$bla_result[id]) {

Wie ist die Konstante id definiert?

> echo "Fehlermeldung";
> }
> ?>
>
> Hier bekomme ich fortan immer die Fehlermeldung angezeigt, obwohl ein
> Ergebnis der Abfrage vorhanden ist.

Welche Fehlermeldung? Oder nur das Wort "Fehlermeldung", also aus Deinem
Code?

Gruß. Claus

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

am 04.04.2007 11:55:58 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

am 04.04.2007 12:06:00 von mcclane

Claus Reibenstein schrieb:
> Herbert Bölter schrieb:


>> $bla_sql=mysql_query("SELECT * FROM tabelle WHERE foo LIKE '$foo' LIMIT 1");
> Was steht in $foo?

In diesem Fall ein simpler VAR-String

>> if (!$bla_result[id]) {
> Wie ist die Konstante id definiert?

Als Primary Key mit auto_increment..

>> echo "Fehlermeldung";

> Welche Fehlermeldung? Oder nur das Wort "Fehlermeldung", also aus Deinem
> Code?

Leider nur die aus meinem Code, MySQL selbst gibt mir keinen Error aus.

Ein SELECT in der FORM
"SELECT name, beschreibung FROM tabelle ORDER BY id DESC LIMIT 5"

wird hingegen ordnungsgemäß ausgeführt.

> Gruß. Claus

Vielen Dank,
Herbert

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

am 04.04.2007 12:11:15 von Claus Reibenstein

Herbert Bölter schrieb:

> Claus Reibenstein schrieb:
>
>> Herbert Bölter schrieb:
>>
>>> if (!$bla_result[id]) {
>>
>> Wie ist die Konstante id definiert?
>
> Als Primary Key mit auto_increment..

Das war nicht meine Frage. Mir geht es um die Konstante, nicht um die
Tabellenspalte.

Du verwendest in Deinem Programm eine Konstante namens "id", die
irgendwo per define('id', ...) definiert worden ist. Wie sieht diese
Definition aus?

Gruß. Claus

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

am 04.04.2007 16:13:28 von Christian Franzen

> if (!$bla_result[id]) {

Kann es sein dass du statt $bla_result[id] eigentlich $bla_result['id']
meintest???

mfg Xion

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

am 05.04.2007 17:59:21 von dev-null-use-reply-adress

Herbert Bölter schrieb:

> Ich bin vor kurzem von PHP4 und MySQL4 auf einen neuen Server mit PHP5
> und MySQL5 umgezogen und nun geht die simpelste Abfrage nicht mehr:
>
> > $bla_sql=mysql_query("SELECT * FROM tabelle WHERE foo LIKE '$foo' LIMIT 1");

$sql = "SELECT * FROM tabelle WHERE foo LIKE '$foo' LIMIT 1";
echo $sql; // Debugging - sieht die Abfrage aus wie erwartet?

$res = mysql_query($sql)
or die (mysql_error()); // Diese Fehlerbehandlung fehlte

> $bla_result=mysql_fetch_array($bla_sql)

Die Rückgabe der Query nanntest Du sql und die Rückgabe der Werte
eines jeweiligen Datensatzes result. Unüblich und verwirrend.
Aber gut, das ist nur ein wenig Korinthenkackerei ,-)

> if (!$bla_result[id]) {

Du wolltest $bla_result['id'] oder von mir aus auch
$bla_result["id"] schreiben, wie die anderen auch schon sagten.

28.15. Notice: Use of undefined constant ...
http://www.php-faq.de/q/q-fehler-konstante.html


Und weil das Ganze erst mal ein reines PHP-Problem zu sein scheint,
leite ich nach d.c.l.p.datenbanken um.


Gruß
JPM