SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.04.2008, 20:01:20
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
Erweiterte MYSQL_i Klasse

Hy hab mal eine kleine aber (hoffentlich) feine Klasse geschrieben, mit welche die Grundlegendsten SQL-Befehl enthält.

PHP-Code:
<?php
/* 

Dies ist eine Klasse für MYSQLi diese ermöglicht es 
schnelle und Benutzerfreundliche Anfragen an den Server zu schicken

*/
class mysql_i
    
{
        private 
$database;
        public    
$ausgabe;
        
        
/* Hilfefunktion der Klasse */
        
function help()
        {
            echo
'
                    <h1>Hilfe - mysql_i_Klasse</h1>
                    <table border="1" width="100%" cellpadding="0" cellspacing="0">
                        <colgroup>
                            <col width="200px">
                            <col width="*">
                        </colgroup>
                        <tr>
                            <td>Methode</td>
                            <td>Beschreibung</td>
                        </tr>
                        <tr>
                            <td>__construct</td>
                            <td>Stellt die Verbindung zum MYSQL- Server her.<br> Diese Methode wird automatisch aufgerufen</td>
                        </tr>
                        <tr>
                            <td>select</td>
                            <td>Führt einen MYSQL- Select- Befehl aus.<br> Bsp.: <b>$instanzname->select("Tabellenname","Spalte1 AS Spaltenalias, Spalte2","Bedingung")</b><br>Die Ausgabe steht nur bei diesem Befehl zur Verfügung</td>
                        </tr>
                        <tr>
                            <td>insert</td>
                            <td>Führt einen MYSQL- Insert- Befehl aus.<br> Bsp.: <b>$instanzname->insert("Tabellenname","Spalte1, Spalte2","`Inhalt1`,`Inhalt2`")</b></td>
                        </tr>        
                        <tr>
                            <td>update</td>
                            <td>Führt einen MYSQL- Update- Befehl aus.<br> Bsp.: <b>$instanzname->update("tabellenname", array("Spalte1" => "Inhalt1", "Spalte2" => "Inhalt2"))</b></td>
                        </tr>                            
                        <tr>
                            <td>delete</td>
                            <td>Führt einen MYSQL- Delete- Befehl aus.<br> Bsp.: <b>$instanzname->delete("Tabellenname","Bedingung")</b></td>
                        </tr>    
                        <tr>
                            <td>__destruct</td>
                            <td>Trennt die Datenbankverbindung</td>
                        </tr>                        
                    </table>
                '
;
        
        }
        
        
        function 
__construct()
        {        
            
// Verbindung mit der Datenbak herstellen
            
$this->datebase = new mysqli("####""####""####""####");
        }    

        function 
select($tablename,$cols "*",$where "1")
        {
            
/* SELECT ABFRAGE AUSFÜHREN */
            
$befehl $this->datebase->query("SELECT $cols FROM $tablename WHERE $where");
            return 
$befehl->fetch_object();
        }
        
        
/* FUNKTION ZUM SCHREIBEN EINES DATENSATZES */
        
function insert($tablename,$cols,$values)
        {
            
$this->datebase->query("INSERT INTO `$tablename` ($cols) VALUES ($values)");    
        }
        
        
/* FUNKTION ZUM ÄNDERN EINES DATENSATZES */
        
function update($tablename,$colsset)
        {
            if(
is_array($colsset) == true)
            {
            
$update_seq "";
            
$i 0;
            foreach(
$colsset AS $index => $value)
            {
                
$i++;
                if(
$i count($colsset))
                {
                    
$update_seq.= $index.' = `'.$value.'`, ';
                }else{
                    
$update_seq.= $index.' = `'.$value.'`';
                }
            }
            
$this->datebase->query("UPDATE $tablename SET $update_seq");
            }else{
            echo 
'<h2>Ihr Update- Befehl ist fehlerhaft, bitte lesen Sie in der Hilfe nach, wie der Updatebefehl formuliert wird!</h2>';
            
$this->help();
            }
        }
        
        
/* FUNKTION ZUM LÖSCHEN DER DATENSÄTZE */
        
function delete($tablename FALSE$where FALSE)
        {
            if((
$tablename != FALSE) && (($where != FALSE)))
            {
                
$this->datebase->query("DELETE FR4OM $tablename WHERE $where");
            }elseif((
$tablename == FALSE) && (($where != FALSE))){
                
/* Fehlerausgabe, wenn kein Tabellenname angegeben wurde */
                
echo 'Sie haben keinen Tabellennamen eingegeben, bitte geben Sie einen Tabellennamen ein!';
            }elseif((
$tablename != FALSE) && (($where == FALSE))){
                
/* Fehlerausgabe, wenn kein WHERE angegeben wurde */
                
echo 'Sie haben keine WHERE- Bedingung angegeben (das Löschen alle Datensätze wurde verhindert), bitte geben Sie eine WHERE- Bedingung an!';
            }else{
                
/* Wenn nichts angegeben wurde dann Fehler */
                
echo 'Bitte geben Sie die Notwendigen Parameter an ("Tabellenname","WHERE- Bedingung")!'
            }
        }
        
        function 
__destruct()
        {
            
// Datenbankverbindung trennen
            
$this->datebase->Close();
        }
    }
?>

Diese Klasse soll einem die Syntax ein wenig abnehmen.

Die Klasse funktioniert nur unter:
- PHP5
- MYSQLi erweiterung

Geändert von ksticker (21.04.2008 um 20:38:04 Uhr) Grund: Mehr Infos geschríeben
Mit Zitat antworten
  #2  
Alt 21.04.2008, 22:35:41
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Erweiterte MYSQL_i Klasse

Abend!
Meiner Meinung nach ist diese Klasse überhaupt nicht sinnvoll. Nicht nur, dass mysqli so oder so schon eine objektorientierte Syntax besitzt, es ist auch noch komplizierter als zuvor. Man muss erst in der Klasse rumpfuschen, bevor man zum MySQL-Server verbinden kann. Eine solche Klasse macht nur dann Sinn, wenn man noch mysql und nicht mysqli-Funktionen benutzt. Und selbst dann sollte die Klasse vollkommen anders aufgebaut sein und eine Methode wie help() hat da nichts zu suchen.
MfG, Andy

PS: Eine richtige Datenbank-Klasse hätte ungefähr die Syntax, die MySQLi so oder so schon hat.
__________________
BSc. Applied Computer Science
http://www.bornageek.com

Geändert von Socrates (21.04.2008 um 22:38:53 Uhr)
Mit Zitat antworten
  #3  
Alt 21.04.2008, 22:40:31
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
AW: Erweiterte MYSQL_i Klasse

Gibt es denn in Mysqli solche befehle wie $instanzname->insert("blablabla");?
Mit Zitat antworten
  #4  
Alt 21.04.2008, 22:51:55
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Erweiterte MYSQL_i Klasse

Gibt es alles.
PHP-Code:
<?php
     
// create object
     
@db = new mysqli("localhost""root""""test");

     if(
mysqli_connect_errno())
     {
          echo 
"Connection failed!";
          exit();
     }

     
// run db-query
     
if( $cmd $db->query("SELECT * FROM tabletest") )
     {
          
// get response
          
while ( $reply $cmd->fetch_object() )
          {
               
// print out reply
               
echo {$reply};
          }

          
$cmd->close();
     }
     
     else
     {
          echo 
"No data found!";
     }

     
// close connection
     
$db->close();
?>
__________________
BSc. Applied Computer Science
http://www.bornageek.com

Geändert von Socrates (21.04.2008 um 22:52:55 Uhr)
Mit Zitat antworten
  #5  
Alt 21.04.2008, 22:59:20
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
AW: Erweiterte MYSQL_i Klasse

Ne ich meine das so $cmd = $db->insert("Spalte1","Inhalt1")
Mit Zitat antworten
  #6  
Alt 21.04.2008, 23:28:20
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Erweiterte MYSQL_i Klasse

Nein das gibt es nicht. Das macht ja auch keinen Sinn, da man bei dieser Methode ja keine weiteren Optionen hinzufügen kann. Wie fragst du zum Beispiel Datensätze ab, die ein bestimmtes Datum haben. Oder wie sortierst du diese Datensätze?
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com
Mit Zitat antworten
  #7  
Alt 21.04.2008, 23:43:48
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
AW: Erweiterte MYSQL_i Klasse

so:

PHP-Code:
        function select($tablename,$cols "*",$where "1"
        { 
            
/* SELECT ABFRAGE AUSFÜHREN */ 
            
$befehl $this->datebase->query("SELECT $cols FROM $tablename WHERE $where"); 
            return 
$befehl->fetch_object(); 
        } 
Mit Zitat antworten
  #8  
Alt 22.04.2008, 02:44:40
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Erweiterte MYSQL_i Klasse

Diese Methode, diese ganze Klasse macht einfach keinen Sinn. Wenn es die Arbeit wirklich erleichtern würde, aber das tut es nicht. MySQL bietet so viele Möglichkeiten und du beschneidest sie nur durch diese Klasse.
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com
Mit Zitat antworten
  #9  
Alt 25.04.2008, 14:08:50
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Erweiterte MYSQL_i Klasse

Sehe ich genauso. Wenn Du Deine Klasse wenigstens von mysqli abgeleitet hättest, wären die Funktionen nur selten von Nutzen. So ist die Klasse leider unbrauchbar.
Schau Dir mysqli oder PDO an. Oder wenn Du darüber hinaus gehen willst, beschäftige Dich mit Abstraktionsschichten oder object relational mapping (orm).
__________________
Wat der Bauer nich kennt, dit frisster nich.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kann eine Klasse in einer Eigenschaft ein Objekt, einer anderen Klasse instanzieren? Balthazzar PHP für Fortgeschrittene und Experten 6 06.07.2006 17:06:36
Klasse in Klasse aufrufen wollenschlaeger PHP für Fortgeschrittene und Experten 4 14.07.2005 14:05:32
Andere Klasse aus Klasse aufrufen NanoCyte PHP für Fortgeschrittene und Experten 22 28.06.2004 22:24:53
Blätterfunktion als Klasse! Funjoy PHP Entwicklung und Softwaredesign 0 25.06.2004 00:45:04
Methoden in Klassen includen bzw. ausserhalb der Klasse definieren darius PHP für Fortgeschrittene und Experten 6 31.12.2003 11:32:42


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt