Umstieg auf MySQL5: Simple SELECT * geht nicht

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:

<?php
$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
mcclane [ Mi, 04 April 2007 11:48 ] [ ID #1678395 ]

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

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:
>
> <?php
> $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
Claus Reibenstein [ Mi, 04 April 2007 11:55 ] [ ID #1678397 ]

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

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
Andreas Kretschmer [ Mi, 04 April 2007 11:55 ] [ ID #1678398 ]

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

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
mcclane [ Mi, 04 April 2007 12:06 ] [ ID #1678399 ]

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

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
Claus Reibenstein [ Mi, 04 April 2007 12:11 ] [ ID #1678400 ]

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

> if (!$bla_result[id]) {

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

mfg Xion
Christian Franzen [ Mi, 04 April 2007 16:13 ] [ ID #1678407 ]

Re: Umstieg auf MySQL5: Simple SELECT * geht nicht

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:
>
> <?php
> $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
dev-null-use-reply-ad [ Do, 05 April 2007 17:59 ] [ ID #1679523 ]
Datenbanken » de.comp.datenbanken.mysql » Umstieg auf MySQL5: Simple SELECT * geht nicht

Vorheriges Thema: Teil einer mySQL-Abfrage an PHP-Variable hängen? Geht das?
Nächstes Thema: MyODBC 3.51 unter Windows Vista