Zugriff auf DB mit PHP

  • Wie verbindet ihr euch in PHP mit einer Datenbank? 23

    1. mysql_*-Funktionen (16) 70%
    2. pg_*-Funktionen (0) 0%
    3. sqlite_*-Funktionen (0) 0%
    4. mssql_*-Funktionen (0) 0%
    5. PDO (inkl. Wrapper) (2) 9%
    6. ODBC (inkl. Wrapper) (0) 0%
    7. Eigener prozeduraler Wrapper (0) 0%
    8. Eigener objektorientierter Wrapper (3) 13%
    9. Andere prozedurale Erweiterung (0) 0%
    10. Andere objektorientierte Erweiterung (2) 9%

    Hallo!
    Als erster Thread-Starter des Forums möchte ich eine Umfrage starten, wie ihr in PHP auf Datenbanken zugreift.

    Also ich verwende PDO mit einem eigenen Wrapper. (MySQL)

    Viele liebe Grüße
    The User

  • Ich habe mir mal vor Jahren eine Klasse zusammengebastelt. Wobei ich gestehen muss, dass ich die noch zu Zeiten von PHP 4 gebaut habe und immer noch nicht an PHP5 angepasst habe. Manchmal ist man einfach zu faul. ;)

  • Ich hab mir nen eigenen wrapper auf der basis von PDO gebaut der z.B. prefixe vor den tabellennamen einfügt :D

    Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)

  • mysqli (objektorientiert)

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Hab mal für andere objektorientierte Erweiterung gevoted, ist ja mit prepared statements etc. schon bissl anders als normale mysql-Funktionen.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Also ich nehm normale mysql-Funktionen und wenn ich was dazu brauch add ich es meiner MYSQL Klasse


    mfg

  • Jo, das nennt man auch PDO. :D
    Oder was meinste?


    Ich muß ehrlich gestehen, ich habe mich noch nie mit PDO beschäftigt :D

    Ich nutze halt die mysqli-Extension von php objektorieniert mit den Standard-Funktionen für prepared Statement, z.B.:

    Ka wie das bei PDO aussieht. ^^

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • mit $mysqli->prepare($sql) wird das statement vorbereitet und die kennung wird in $res gespeichert.
    Mit $res->bind_param("i",$usergroup) wird festgelegt wie die ? in dem Statement belegt werden sollen und um welchen Variablentyp es sich handelt. Das escapen wird dann beim ausführen automatisch gemacht, man braucht benutzereingaben also nicht mehr selber gegen sql-injections absichern.
    das "i" in den klammern sagt, dass es eine integer-variable sein soll. "s" stünde für string, "d" für double und "b" für blob.
    $usergroup ist dann der wert der bei jeder ausführung der abfrage entsprechend eingesetzt wird. bei jedem $res->execute() wird das statement mit dem aktuellen wert von $usergroup ausgeführt.
    $res->bind_result($name) ist für SELECT-Abfragen und legt fest in welchen Variablen die ausgelesenen Werte abgelegt werden. Man bekommt keinen array zurück wie z.b. bei $row = mysql_fetch_array($res).
    Das spart resourcen und man braucht nicht umständlicher mit array-indices arbeiten.
    $res->fetch() holt dann die ergebnise der abfrage ab und speichert sie für die aktuelle zeile in den variablen die mit $res->bind_result festgelegt wurden.

    Der Code fragt also aus der Tabelle `user` alle namen ab die einer bestimmten usergroup angehören und gibt diese aus.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook