kostenloser Webspace werbefrei: lima-city


MySQL Klasse will nicht so recht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    cannadesign

    Kostenloser Webspace von cannadesign

    cannadesign hat kostenlosen Webspace.

    Hey,

    da ich in PHP etwas eingerostet bin, komme ich jetzt nicht mehr weiter. Ich habe mir eine MySQL Klasse geschrieben und dazu eine kleine Test.php. Allerdings kommt garnichts, er verbindet anscheinend nicht einmal, denn wenn ich die Datenbank Daten falsch eintrage, kommt auch keine Fehlermeldung.
    Hier die Klasse:
    <?php
    /* *
     * Erstellt von CannaDesign
     * 01.07.2014, 14:53 Uhr
     * MySQL Klasse zum verbinden und abrufen von Datenbankeinträgen
     */
     class Database {
    
         private $connect = Null;
         private $result = Null;
         private $counter = Null;
    
         /* Datenbank verbindung aufbauen
          * Diese Function wird automatisch beim einbinden der Klasse ausgeführt.
          * */
         public function __construction ($host = Null, $db = Null, $user = Null, $pw = Null) {
             $this->connect = mysqli_connect($host, $user, $pw, TRUE);
             if($this->connect) {
                 mysqli_select_db($db, $this->connect);
                 die('Erfolg!');
             }
             else {
                 die('<p>Das Herstellen zur Datenbank ist fehlgeschlagen. Bitte kontaktieren Sie den Seiteninhaber.</p>');
             }
         }
    
         /*
          * Datenbankverbindung schliessen (Vorraussetzung es ist eine vorhanden)
          * */
         public function disconnect() {
             if(is_resource($this->connect)) {
                 mysqli_close($this->connect);
             }
         }
         /*
          * Query ausführen
          * */
         public function query($query) {
             $this->result = mysqli_query($query, $this->connect);
             $this->counter = Null;
             return $this->result;
         }
    
         public function fetchRow() {
             return mysqli_fetch_assoc($this->result);
         }
    
         public function fetchArray() {
             return mysqli_fetch_array($this->result);
         }
         /* Zählt die Tabellen aus MySQL */
         public function counter() {
             if($this->counter = NULL && is_resource($this->connect)) {
                 $this->counter = mysqli_num_rows($this->result);
             }
             return $this->counter;
         }
    
     }
    
    ?>


    Und hier die Test.php

    <html>
    <head>
    </head>
    
    <body>
        <?php
            require_once 'core/class/Database.inc.php';
    
            $database = new Database('mysql.lima-city.de', 'db_297947_1', '', '');
    
            $db_result = $database->query("SELECT * FROM users WHERE Name = 'Canna'");
            while($row = mysqli_fetch_array($db_result, MYSQL_ASSOC)) {
                echo $row['Name'];
                echo $row['Email'];
            }
    
        ?>
    </body>
    </html>


    Ich hoffe mir kann jemand helfen und sagen wo ichn Fehler gemacht habe.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,

    wenn Du "__construction()" gegen "__construct()" ersetzt, dann könnte es funktionieren.

    Gruß flmap
  4. Autor dieses Themas

    cannadesign

    Kostenloser Webspace von cannadesign

    cannadesign hat kostenlosen Webspace.

    Gott. Man kann sich auch Blöd anstellen, dachte es hiess construction. Aber danke dir. <3

    Edit:
    Zwar ruft er jetzt die Klasse auf, aber irgendwie gibt er mir immer aus, dass die Verbindung zur Datenbank nicht hergestellt werden kann. So sieht meine Klasse derzeit aus.
    <?php
    /* *
     * Erstellt von CannaDesign
     * 01.07.2014, 14:53 Uhr
     * MySQL Klasse zum verbinden und abrufen von Datenbankeinträgen
     */
     class Database {
    
         private $connect = Null;
         private $result = Null;
         private $counter = Null;
    
         /* Datenbank verbindung aufbauen
          * Diese Function wird automatisch beim einbinden der Klasse ausgeführt.
          * */
         public function __construct($host = Null, $db = Null, $user = Null, $pw = Null) {
             $this->connect = mysqli_connect($host,$user,$pw,$db) or die("Error " . mysqli_error($link));
             $this->connect = mysqli_connect();
             if($this->connect) {
                 mysqli_select_db($db, $this->connect);
             }
             else {
                 die('<p>Das Herstellen zur Datenbank ist fehlgeschlagen. Bitte kontaktieren Sie den Seiteninhaber.</p>');
             }
         }
    
         /*
          * Datenbankverbindung schliessen (Vorraussetzung es ist eine vorhanden)
          * */
         public function disconnect() {
             if(is_resource($this->connect)) {
                 mysqli_close($this->connect);
             }
         }
         /*
          * Query ausführen
          * */
         public function query($query) {
             $this->result = mysqli_query($query, $this->connect);
             $this->counter = Null;
             return $this->result;
         }
    
         public function fetchRow() {
             return mysqli_fetch_assoc($this->result);
         }
    
         public function fetchArray() {
             return mysqli_fetch_array($this->result);
         }
         /* Zählt die Tabellen aus MySQL */
         public function counter() {
             if($this->counter = NULL && is_resource($this->connect)) {
                 $this->counter = mysqli_num_rows($this->result);
             }
             return $this->counter;
         }
    
     }
    
    ?>


    Beitrag zuletzt geändert: 1.7.2014 20:37:32 von cannadesign
  5. Du könntest Alternativ mit try/catch arbeiten um die genaue Ursache zu finden.
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    cannadesign schrieb:
    $this->connect = mysqli_connect($host,$user,$pw,$db) or die("Error " . mysqli_error($link));
    $this->connect = mysqli_connect();
    if($this->connect) {
    // …
    Wie stellst du dir das vor? Connect und dann gleich noch einmal connect … das wird nix.

    Lies dazu übrigens mal in der Dokumentation: *klick*, Punkt »Procedural Style«.
  7. Autor dieses Themas

    cannadesign

    Kostenloser Webspace von cannadesign

    cannadesign hat kostenlosen Webspace.

    Ich vergaß, dass ich dieses Problem bereits gelöst habe. Trotzdem vielen Dank für eure Antworten. Allerdings, stehe ich vor dem nächsten.

    Wollte nun eine User Klasse erstellen, da meine mysql klasse jetzt richtig funktioniert. Allerdings wird mir immer der Wert NULL ausgegeben, obwohl es einen Datenbankeintrag mit diesen Einträgen existiert.
    Sprich $result.
    (Ich weiss, dass die Klasse/function noch nicht fertig gebaut ist.)
    <?php
        require 'Database.inc.php';
        class User {
    
            private $database = NULL;
            private $result = NULL;
    
            public function __construct() {
    
            }
    
            public function login($email, $pw) {
                $database = new Database("mysql.lima-city.de", "d", "USER297947", "");
                $result = $database->query("SELECT * FROM user WHERE Email = '".$email."' AND Passwort = '".$pw."'");
                var_dump($result);
            }
    
        }
    
    ?>


    Beitrag zuletzt geändert: 1.7.2014 23:18:10 von cannadesign
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!