php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.02.2009, 15:27  
Neuer Benutzer
 
Benutzerbild von Gödda
 
Registriert seit: 16.02.2009
Beiträge: 9
Gödda befindet sich auf einem aufstrebenden Ast
Standard MySQL Klasse

Hallo Leute

Hab im Folgenden mal meine selbst erstellte MySQL Klasse ausgestellt, die ich für ein Projekt verwenden möchte und würde gerne eure Meinungen dazu hören, bevor ich mich richtig an die Arbeit mache.

PHP-Code:
<?php

class mysql {

    private 
$db;    
    private static 
$instance null;
    

    public static function 
getInstance() {

        if (
self::$instance == null) {
            
            
self::$instance = new mysql();
        }
        
        return 
self::$instance;
    }
    

    protected function 
__construct() {}    
    private function 
__clone() {}    
    
    
    public function 
connect() {
    
        
$this->db mysql_connect('server''host''password');
        
        
mysql_select_db('db');
    }
    
    
    public function 
close() {
    
        
mysql_close($this->db);
    }
    
    
    public function 
getArray($sql) {
    
        
$result $this->query($sql);
        
        if (
mysql_num_rows($result) == 1) {
                
            return 
mysql_fetch_assoc($result);
        }
        
        
$output = array();
            
        while (
$row mysql_fetch_assoc($result)) {
                    
            
$output[] = $row;
        }
            
            return 
$output;
    }
    
    
    public function 
query($sql) {
    
        
$result mysql_query($sql);
        
        return 
$result;
    }
    
    
    public function 
numRows($sql) {
        
        
$query    $this->query($sql);
        
$result     mysql_num_rows($query);
        
        return 
$result;
    }
    
    
    public function 
affRows($sql) {
    
        
$query    $this->query($sql);
        
$result    mysql_affected_rows($query);
        
        return 
$result;
    }
}

?>

Verbesserungsvorschläge, Anregungen und Kritik sind sehr erwünscht, sofern sie kontruktiv sind

MfG
__________________
Es gibt nur 10 Arten von Menschen - Die, die Dualzahlen verstehen, und die, die sie nicht verstehen ...
Gödda ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.02.2009, 16:04  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Als erstes würde ich mal die getArray()-Methode ändern. Die Rückgabe ist nicht konsistent. Soll heißen: Du kannst nicht wissen ob das zurückgegebene Array nun ein Datensatz oder ein Array von Datensätzen ist....
Das ist ziemlich unschön.

Insgesamt seh ich auch keinen Vorteil deiner Klasse gegenüber anderen Herangehensweisen...
agrajag ist offline  
Alt 16.02.2009, 16:05  
md5
Benutzer
 
Registriert seit: 21.09.2008
Beiträge: 69
md5 befindet sich auf einem aufstrebenden Ast
Standard

mal son hinweis:

es gibt bereits eine solche klasse: "mysqli"
md5 ist offline  
Alt 16.02.2009, 16:37  
Neuer Benutzer
 
Benutzerbild von Gödda
 
Registriert seit: 16.02.2009
Beiträge: 9
Gödda befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von md5 Beitrag anzeigen
mal son hinweis:

es gibt bereits eine solche klasse: "mysqli"
Mhm, damit habe ich mich noch nie richtig befasst.

Kennst du Quellen / Tutorials, die dieses Gebiet gut erklären?
__________________
Es gibt nur 10 Arten von Menschen - Die, die Dualzahlen verstehen, und die, die sie nicht verstehen ...
Gödda ist offline  
Alt 16.02.2009, 18:56  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

-> PHP: Mysqli - Manual
robo47 ist offline  
Alt 16.02.2009, 19:02  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich sehe keinen echten Vorteil in Deiner Klasse. Dafür wird es einem unmöglich, Fehler , bspw. beim Verbindungsaufbau, abzufangen. Das geht Deiner Klasse voll ab.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 16.02.2009, 22:24  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

PHP-Code:
    public function query($sql) { 
     
        
$result mysql_query($sql); 
         
        return 
$result
    } 
Verhindert die Mehrfachverwendung der Klasse innerhalb einer Applikation pro Request. Hier fehlt die Angabe der Verbindungsressource.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 17.02.2009, 01:51  
Benutzer
 
Benutzerbild von echo
 
Registriert seit: 20.09.2008
Beiträge: 91
PHP-Kenntnisse:
Anfänger
echo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Gödda,

ein meiner Meinung nach schönes Bsp. für eine MySQL-Klasse gibt es hier:
www.peterkropff.de/tutorials/php_oop_3/oop_3.htm

Ist gleichzeitig ein Tutorial für OOP!

Gruß
L
echo ist offline  
Alt 17.02.2009, 01:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Na--ja. Wenn ich die ganzen or die (mysql_error()); schon lese... Sieht mir dann auch nicht nach nachhaltiger Lösung aus.

Vor allem der Teil ist super-sinnig:
PHP-Code:
  $this -> con mysql_connect ($host$user$password
                 or die (
mysql_error());
   
  if (
is_resource ($this -> con)) 
Denkt mal drüber nach

PS:
kleiner Tipp: Hat was damit zu tun:


Zitat:
Returns a MySQL link identifier on success, or FALSE on failure.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (17.02.2009 um 02:03 Uhr).
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Methode einer anderen Klasse aufrufen Luka PHP-Fortgeschrittene 15 09.11.2008 14:19
[Erledigt] MySQL Klasse methanol PHP Tipps 2008 23 23.10.2008 09:29
eigene Klasse für mySql PW und UN Reen_Sc Datenbanken 4 09.07.2008 16:15
PHP + MySQL zwei Instanzen vertragen sich nicht Leisurelarry PHP Tipps 2008 11 04.10.2007 16:45
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
OOP => MySQL Klasse Kein Genie PHP Tipps 2007 16 16.03.2007 14:57
tutorial mysql klassen im oop projekt phpdummi Beitragsarchiv 4 17.01.2007 20:17
MySQL - Klasse: Wie da mysql_close benutzen Igäl PHP Tipps 2006 5 01.10.2006 23:09
mysql klasse - handling mehrerer connections mrSpok PHP Tipps 2006 5 14.04.2006 01:05
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Habe Mysql KLasse geschrieben, aber... Spike_php PHP-Fortgeschrittene 10 27.03.2005 09:15
[Erledigt] PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php5 mysql klasse, php5 mysql class, php und oop – eine mysql klasse, php static mysql klasse, php mysql klasse vorteil, mysql klasse, php mysql klasse request

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum