php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.10.2009, 10:21  
Erfahrener Benutzer
 
Registriert seit: 09.07.2008
Beiträge: 577
PHP-Kenntnisse:
Anfänger
SteiniKeule kann nur auf Besserung hoffen
SteiniKeule eine Nachricht über ICQ schicken SteiniKeule eine Nachricht über Skype™ schicken
Standard mysql class fehler

hallo

erst mal der Code:
PHP-Code:
class mysql
{
    private 
$host     'localhost'
    private 
$user     'web183';
    private 
$passwort     'xxxx'
    private 
$dbname     'usr_web183_1';
    private 
$last_injection '';
    private 
$conn_id null;
    
    
    
    
    public function 
__construct($host$user$passwort$dbname)
    {
        
$this->host     $host;
        
$this->user     $user;
        
$this->passwort $passwort;
        
$this->dbname     $dbname;
        
$this->connect_mysql();
        return(
$this->conn_id);
    } 
Wenn ich jetzt die classe und funktion so aufrufe:

PHP-Code:
$sql = new mysql(); 
dann gibt er mir das hier aus:

Code:
Warning:  Missing argument 1 for mysql::__construct(), called in /var/www/web183/html/index.php on line 28 and defined in /var/www/web183/html/csp/ticket/include/class/mysql_class.inc.php on line 45

Warning:  Missing argument 2 for mysql::__construct(), called in /var/www/web183/html/csp/ticket/index.php on line 28 and defined in /var/www/web183/html/include/class/mysql_class.inc.php on line 45

Warning:  Missing argument 3 for mysql::__construct(), called in /var/www/web183/html/csp/ticket/index.php on line 28 and defined in /var/www/web183/html/include/class/mysql_class.inc.php on line 45

Warning:  Missing argument 4 for mysql::__construct(), called in /var/www/web183/html/csp/ticket/index.php on line 28 and defined in /var/www/web183/html/include/class/mysql_class.inc.php on line 45

Notice:  Undefined variable: host in /var/www/web183/html/include/class/mysql_class.inc.php on line 47

Notice:  Undefined variable: user in /var/www/web183/html/include/class/mysql_class.inc.php on line 48

Notice:  Undefined variable: passwort in /var/www/web183/html/include/class/mysql_class.inc.php on line 49

Notice:  Undefined variable: dbname in /var/www/web183/html/include/class/mysql_class.inc.php on line 50 
ich hab das jetzt mal eben so umgeschrieben:
PHP-Code:
class mysql
{
    private 
$host     'localhost'
    private 
$user     'web183';
    private 
$passwort     'xxxx'
    private 
$dbname     'usr_web183_1';
    private 
$last_injection '';
    private 
$conn_id null;
    
    
    
    
    public function 
__construct()
    {
        
$this->host     $this->host;
        
$this->user     $this->user;
        
$this->passwort $this->passwort;
        
$this->dbname     $this->dbname;
        
$this->connect_mysql();
        return(
$this->conn_id);
    } 
stimmt das so? also fehler bekomme ich keine, aber ist das auch so richtig?
SteiniKeule ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 04.10.2009, 10:40  
Erfahrener Benutzer
 
Registriert seit: 13.05.2009
Beiträge: 1.166
PHP-Kenntnisse:
Fortgeschritten
dennis81 befindet sich auf einem aufstrebenden Ast
Standard

Im ersten Fall hat du dem Konstruktor keine Parameter übergeben, obwohl dieser welche verlangt. Und das, obwohl du die Verbindungsdaten bereits in der Klasse definiert hast. Doppelt gemoppelt. Ich würde Variante 1 nehmen und dann beim Aufruf die Daten übergeben. So musst du deine Klasse nicht jedes Mal anpassen, wenn du mal auf eine andere Datenbank zugreifen willst.

Variante 2 wird funktionieren, aber erkläre mir mal, was das soll:
PHP-Code:
$this->host     $this->host;
        
$this->user     $this->user;
        
$this->passwort $this->passwort;
        
$this->dbname     $this->dbname
Überflüssig! a = a ...
dennis81 ist offline  
Alt 04.10.2009, 10:46  
Erfahrener Benutzer
 
Registriert seit: 09.07.2008
Beiträge: 577
PHP-Kenntnisse:
Anfänger
SteiniKeule kann nur auf Besserung hoffen
SteiniKeule eine Nachricht über ICQ schicken SteiniKeule eine Nachricht über Skype™ schicken
Standard

ja das mit dem a=a hab ich mir auch gedacht, aber es hat halt funktioniert :P

zu dem übergeben...
ich möchte nur auf eine DB zugreifen. wenn ich mehrer DB´s möchet, dann kann ich es mir ja immer noch umschreiben, aber ich möchte nur bei einer bleiben.

ich muss zugeben dass ich mir mit classen & Co noch etwas schwer tue.

hab das jetzt mal so geändert:

PHP-Code:
public function __construct()
    {

        
$this->connect_mysql();
        return(
$this->conn_id);
    } 
ich denke mal das stimmt so?
SteiniKeule ist offline  
Alt 04.10.2009, 11:52  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Wenn in der connect_mysql() die richtigen Verbinsungsparameter verwendet werden
und dort auch die connect_id gesetzt wird: JA...
Arne Drews ist offline  
Alt 04.10.2009, 15:28  
Neuer Benutzer
 
Registriert seit: 04.10.2009
Beiträge: 14
PHP-Kenntnisse:
Anfänger
se2bass befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
Ich hab mir das Thema mal angeschaut und würde zu folgender Lösung raten:

PHP-Code:
<?php

class mysql {
    private 
$host;
    private 
$user;
    private 
$passwort;
    private 
$dbname;
    private 
$last_injection '';
    private 
$connection_id;

    public function 
__construct($host 'localhost'$user 'web183'$passwort 'xxxx'$dbname 'usr_web183_1') {
        
$this->host $host;
        
$this->user $user;
        
$this->passwort $passwort;
        
$this->dbname $dbname;
        
$this->connect_mysql();
        return(
$this->connection_id);
    }
    
    private function 
connect_mysql() {
        
/*****
         * Aufbau einer MySQL Verbindung
         *****/
    
}    
}

?>
Gruß
se2bass

Geändert von se2bass (04.10.2009 um 15:33 Uhr).
se2bass ist offline  
Alt 04.10.2009, 15:41  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
PHP-Code:
return($this->connection_id); 
öhm... Der Konstruktor gibt doch einen Handle auf das Objekt der Klasse zurück.
Dieses Return aber nur eine Eigenschaft des Objektes der Klasse...

Frage mich, ob ein return innerhalb eines Konstruktors überhaupt Sinn macht, oder überhaupt korrekt ist?
Arne Drews ist offline  
Alt 04.10.2009, 15:48  
Neuer Benutzer
 
Registriert seit: 04.10.2009
Beiträge: 14
PHP-Kenntnisse:
Anfänger
se2bass befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
Ich weiss nicht in wie weit das sinn mach kann mir nur vorstellen das die Eigenschaft der Klasse in der zuvor aufgerufenen Funktion connect_mysql verändert wird und dann eben zurückgegeben wird, weil sie noch woanders gebraucht wird.

Gruß
se2bass
se2bass ist offline  
Alt 04.10.2009, 15:53  
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

Zitat:
Frage mich, ob ein return innerhalb eines Konstruktors überhaupt Sinn macht, oder überhaupt korrekt ist?
Wird in jedem Falle ignoriert.
__________________
--
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 gerade online  
 


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
mySQL UPDATE gibt Fehler aus Tyrra PHP Tipps 2009 12 11.08.2009 18:03
MySQl - kein Fehler -- kein Upload wers1 PHP Tipps 2008 8 10.09.2008 16:13
mysql Datei import bei strato / FEHLER freakymiky Datenbanken 12 05.09.2008 10:16
Mysql fehler Crazystep PHP Tipps 2008 6 28.07.2008 14:55
bitte hilfe! mysql fehler meldung: basicx PHP Tipps 2008 2 22.07.2008 16:36
mysql fehler meldung: basicx Datenbanken 1 22.07.2008 09:48
mysql + confixx fehler - mysql geht plötzlich nicht mehr Datenbanken 2 31.12.2006 11:41
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
MySQL Fehler nach Änderung einer PHP Datei mark007q Datenbanken 2 09.05.2006 23:56
Fehler Die Erweiterung mysql kann nicht geladen werden Datenbanken 5 06.03.2006 23:30
Blöder MySQL Fehler PHP Tipps 2005 3 15.05.2005 03:14
Klassenschachtelung -&amp;gt; Cannot Redeclare Class ... Fehler PHP-Fortgeschrittene 5 21.10.2004 18:04
Problem bei MYSQL / Update Resource #id Fehler PHP Tipps 2004 2 29.09.2004 13:09
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
[Erledigt] MySQL fehler(?) Datenbanken 2 24.07.2004 20:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql codewort class, class.mysql.php on line 50, missing argument 1 for mysql::__construct(), missing argument 4 for mysql::__construct(), warning: missing argument 1 for mysql::__construct(),, undefined variable dbname, missing argument 2 for mysql::__construct(), missing argument 1 for mysql __construct, class fehler, confixx/html/include/class.mysql.php on line 50, mysql klasse __construct, \$this->host = $host\ wie richtig, \host\ missing argument, php $this __construct undefined variable, mysql php klasse fehlerbehandlung, or \'}\' in class.mysql.php on line 13, php error class -\fatal error\, http://www.php.de/php-einsteiger/59616-mysql-class-fehler.html, php warning: missing argument 1 for :__construct(), called in, mysql klasse mit eigenen fehlermeldung

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:57 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