mysql 2 array class

  • am besten du schreibst dir selbst eine oder vielleicht schreibt dir wer eine, warte noch ein bisschen und wenn du dann keine hast schick mir ne pn ich schreib dir dann eine...

    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 ;)

  • Aus meiner Wühlkiste:



    Die Klasse ist noch aus meinen PHP-Anfängen und noch nicht auf PHP5 umgestellt, funktioniert aber trotzdem.

    Einmal editiert, zuletzt von bandit600 (20. August 2008 um 21:28)

  • also ich hab mir auch mal eine geschrieben

    verwendung:

    Code
    $eintraege = new mysql('SELECT * FROM gaestebuch');
    echo $eintraege->num().' Einträ vorhanden!';
    while($eintrag = $eintraege->fetch_assoc())
    { //zB $eintrag['Name'], $eintrag['Time'], etc...
    }

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Eine Sache gefällt mir nicht. Für jede Abfrage musst du ein new mysql ausführen. Und die Fehlerprüfung ist auch nicht flexibel

  • also ich hab mir auch mal eine geschrieben

    Ähm, danke, aber sehe ich richtig dass ich dann per:
    $eintrag['Time'] zugreife? Das ist ja nicht Sinn und zweck der Sache, dann könnte ich auch mysql_fetch_assoc nutzen. Es geht ja grade darum ein assosiatives array zu erstellen

    Trotzdem dankeschön DoDo!
    zu bauen ;)

  • //edit:
    Is das hier besser? ;)

    Ganz am Ende sind 3 neue Funktionen, die dir das gewünschte zurückgeben sollten, egal ob assoc(), object() oder array() ;)

    Something big is coming. And there will be pirates and ninjas and unicorns...

    4 Mal editiert, zuletzt von Dodo (20. August 2008 um 22:18) aus folgendem Grund: Vervollständigung

  • @Bandit:
    Sorry hab deinen post jetzt erste gesehen. Jop die Klasse hab ich auch extra für SQLs gemacht und nicht für volle Datenbankverwaltung.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Ist ja nicht böse gemeint, aber du solltest die Fehlerprüfung in eine Funktion auslagern. Es kann ja vorkommen, dass man bei einem Fehler nicht gleich das Script sterben lassen will. Ich habe bei mir die Klasse mit Absicht ohne einen Hinweis auf MySQL benannt. Wenn man es mal mit einer anderen DB zu tun hat, tausche ich an einer Stelle den Include aus und bin fertig. Du müsstest dein Script anpassen, denn wenn man einen anderen DB-Server als MySQL hat, sieht es doof aus, wenn man da MySQL im Script stehen hat. Und dann hat deine Klasse den gleichen Schwachpunkt wie meine, ein Möglichkeit, String zu escapen fehlt.

  • ja ich hatte noch nie ne andere DB als MySQL^^
    Und die verwaltet nur die SQLs, Sicherheit und ähnliches mach ich in meinem Script
    also vor der aufruf der klasse
    Is eigentlich nur eine kleine spielerei gewesen um klassen zu üben, und hab die jetzt behalten :)

    Wegen dem Fehler: ich habs immer gern, dass bei SQL-Fehlern das Script abbricht, denn sonst könnten weitere fehler entstehen und meine SQL sind ja nicht dazu da, dass sie nicht ausgeführt werden sollen^^

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Ähm, und wo ist mysql_connect und mysql_select_db

    Klar, in der Regel will man einen Abruch, aber das ist nicht immer so. Für interne Zwecke kann es durchaus sinnvoll sein, das Script weiter laufen zu lassen.

  • wie gesagt: die klasse handelt nur SQLs und kein Datenbank-System ;)
    Die klasse setzt voraus, dass man DB-Verbindung hat.

    Ich machs so, dass ich am anfang meiner Scripts immer eine liste mit includes hab, zB so in meinem neuesten Projekt:

    Und in connect.php wird in diesem beispiel eine Datenbankverbindung aufgebaut
    Und somit klappt die klasse bei mir immer ;)
    Meine klasse sind nun mal für mich zugeschnitten, es passiert nciht häufig, dass ich klassen für andere mache

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Kleine Verbesserung ;)

    Code
    [COLOR=#000000][COLOR=#006600]while([/COLOR][COLOR=#0000cc]$values [/COLOR][COLOR=#006600]= @[/COLOR][COLOR=#0000cc]mysql_fetch_assoc[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$query[/COLOR][COLOR=#006600])) {
    [/COLOR][COLOR=#0000cc]$res[/COLOR][COLOR=#006600][] = [/COLOR][COLOR=#0000cc]$values[/COLOR][COLOR=#006600];
    }[/COLOR][/COLOR]


    wäre so optimiert ;)

    Code
    [COLOR=#000000][COLOR=#006600]while([/COLOR][COLOR=#0000cc]$[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000cc]res[/COLOR][COLOR=#006600][] [/COLOR][/COLOR][COLOR=#000000][COLOR=#006600]= @[/COLOR][COLOR=#0000cc]mysql_fetch_assoc[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$query[/COLOR][COLOR=#006600]))[/COLOR][COLOR=#006600];[/COLOR][/COLOR]

    Something big is coming. And there will be pirates and ninjas and unicorns...