AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP, MySQL] Codedesign

Ein Thema von Luckie · begonnen am 6. Jul 2011 · letzter Beitrag vom 7. Jul 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 20:44
Datenbank: MySQL • Version: ??? • Zugriff über: PHP
Hallo,
ich habe mir eine private Adressdatenbank geschrieben, die auf meinem Webspace liegt. Jetzt habe ich gerade daran gebastelt und dabei ist mir aufgefallen, dass alle Abfragen verstreut in den PHP Dateien herumliegen. Jetzt hab eich mir gedacht, ob es nicht sinnvoll wäre alle Abfragen in einer PHP Datei zu sammeln. Dann wäre das etwas einfacher, wenn man was ändert und man hat dann auch keinen doppelten Code.

Was meint ihr dazu? Oder wie macht man so was normalerweise?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 20:46
Am Besten als parametrisierte Abfragen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 20:49
Jetzt haben wir eine Überschneidung mit meinem andren Thema. Ich suche gerade mit Google. Hast du da gerade einen Link parat, wo ich das mal nachlesen kann? Oder kannst du das hier kurz erklären, wie das funktioniert?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 20:52
Siehe anderen Beitrag.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 20:58
Siehe anderen Beitrag.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 21:57
Wenn du OO programmierst, dann kannst du ja alles in entsprechende Klassen kapseln und brauchst die Abfragen nicht irgendwo sammeln -- oder handhabst du das in Delphi auch so? Zudem würde ich mir zugleich dann noch das MVC-Pattern anschauen, da ich nur noch damit programmieren würde. Schau dir vielleicht mal aktuelle Frameworks an, die das so umsetzen. Ich nutze zurzeit Yii, denn davon kann man sich recht viel abgucken, wie man es in PHP in etwa machen sollte und was alles möglich ist.

Und hier noch der Link zum anderen Thema
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 22:33
Na ja, der Code ist entstanden, da habe ich von PHP und Klassen noch keine Ahnung gehabt. Deswegen dachte ich eine kleiner Verbesserung wäre die Abfragen erst mal zentral zusammeln.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 22:44
Hm, wenn du nicht unbedingt auf OOP umsteigen willst, dann würde ich höchstens "Getter"-Methoden zentral sammeln, die dann als Parameter eben die Params für die Query verlangen. Das kann den anderen Code schon übersichtlicher machen.

Aber ich würde mir da meist die Arbeit machen und auf ein FW umsteigen. Hat den Grund, dass man dabei viel lernen kann und zum anderen auch schon sehr viel bzgl. ORM etc. gelöst hat.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 22:50
Getter-Methoden? Was meinst du damit? Die gibt es doch ohne OOP gar nicht. Und bevor ich irgendwelche Frameworks einsetze, wollte ich eigentlich lernen was da im Hintergrund passiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#10

AW: [PHP, MySQL] Codedesign

  Alt 6. Jul 2011, 23:20
Das alles ist ohne Gewähr, dass es funktioniert Ist einfach mal schnell runtergeschrieben! Hier mal wie ich mir die "Getter"-Methoden vorstellen könnte -- das Getter war extra in Anführungszeichen geschrieben, da ich damit eher das "Daten-Holen" meinte.
Code:
<?php
// 
define('TABLE_USER', 'my_users');

//
$pdoConnection = null;

//
function getPdoConnection()
{
    global $pdoConnection;
    $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
    $user = 'dbuser';
    $password = 'dbpass';
    try {
        $pdoConnection = new PDO($dsn, $user, $password);
    } catch (PDOException $e) {
        die('Connection failed: ' . $e->getMessage());
    }
}

//
function getAllUsers()
{
    $sql = 'SELECT * FROM :table';
    $connection = getPdoConnection();
    $query = $connection->prepare($sql);
    $query->bindParam(':table', TABLE_USER, PDO::PARAM_STR);
    $query->execute();
    if ($query === false) {
        return false;
    } else {
        return $query;
    }
}

function gerUser($username = '')
{
    $sql = 'SELECT * FROM :table WHERE username = :username';
    $connection = getPdoConnection();
    $query = $connection->prepare($sql);
    $query->bindParam(':table', TABLE_USER, PDO::PARAM_STR);
    $query->bindParam(':username', $username, PDO::PARAM_STR);
    $query->execute();
    if ($query === false) {
        return false;
    } else {
        return $query;
    }
}
So, nun schaut alles aufgeräumter aus:
Code:
$users = getAllUsers();
if ($users === false) {
    echo 'There are no users registered.';
} else {
    while ($user = $users->fetch(PDO::FETCH_OBJ)) {
        echo $user->username;
    }
}
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz