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

mysql_fetch_assoc bzw. arrays

Status
Für weitere Antworten geschlossen.

r-ene

Neues Mitglied
Hi,
wenn ich z.B. mysql_fetch_assoc benutzte um Daten von einer Datenbanktabelle auszulesen, werden ja Arrays erzeugt.
Bsp: $row['name'];

Diese einfachen (bzw. auch doppelten) Anführungszeichen, deuten die auf ein String hin? Und bei einer id z.B. schreibt man sinnvollerweise: $row[id]; ?
Also ohne Anführungszeichen?
Oder ist da meine Denkweise falsch? ;)
 
Ach so, d.h. es hat keine andere Bedeutung, wenn ich es $row[name];, $row['name']; oder $row["name"]; schreibe.
 
Hallo,

$row["name"] und $row['name'] sind äquivalent. Ohne Anführungszeichen, also $row[name], ist es falsch.


N43
 
Einfache Anführungzeichen sparen die Interpolation (von Steuerzeichen und Variablen). Gib einfach mal zum test "\n" und '\n' aus.
 
Aha, bei mir funktioniert in einer Datenbankabfrage nur $row[id].
Woran liegt das?
Also z.B. so:
mysql_query("SELECT * FROM taeuschungen_kategorien WHERE id = $row[id]")

Wenn ich das mit einfachen Anführungszeichen mache ($row['id']), geht das nicht.
 
Zuletzt bearbeitet:
Hallo,

Einfache Anführungzeichen sparen die Interpolation (von Steuerzeichen und Variablen). Gib einfach mal zum test "\n" und '\n' aus.
Jup, bin davon ausgegangen, dass er nur Text ohne Steuerzeichen / Variablen meint. Aber hast natürlich recht :)

Hab dazu mal ein Test-Script geschrieben:
PHP:
<?php
        $row['id'] = "Morgen";
        define('id', 100);
        $row[id] = "Abend";

        #echo "Guten $row['id']\n";             //Fehler (1)
        echo "Guten $row[id]\n";                //morgen (2)

        echo "Guten ${row['id']}\n";            //morgen (3)
        echo "Guten " . $row[id] . "\n";        //abend (4)
?>

Zu (2) steht in der Doku von PHP:
PHP Dokumentation: schrieb:
The following is okay, as it's inside a string. Constants are not looked for
within strings, so no E_NOTICE occurs here

Das heißt
PHP:
mysql_query("SELECT * FROM taeuschungen_kategorien WHERE id = $row[id]")
ist richtig. Die Variante von crash ist aber trotzdem zu bevorzugen.

Variante (1) entspricht dem, was bei r-ene zu einem Fehler führt.


N43
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben