Sqlite3 - Prepare Fehler

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sqlite3 - Prepare Fehler

    Hallo,

    ich habe eine kleine Klasse geschrieben in der in dem Constructor die Verbindung zur Datenbank hergestellt wird. Doch wenn ich jetzt eine Funktion aufrufen möchte kommt folgender Fehler:
    PHP-Code:
    SQLite3::prepare(): The SQLite3 object has not been correctly initialised 
    Wenn in jeder Funktion die Verbindung zur Datenbank hergestellt wird funktioniert es.
    Doch wieso klappt es nicht mit dem Constructor?

    Hier der Constructor:
    PHP-Code:
    if($this->db = new SQLite3(BASE_LIB_DATA md5(BASE_ID "USER"). ".db")) {
                
    $sql "CREATE TABLE 
                        IF NOT EXISTS 
                            User (
                                ID INTEGER PRIMARY KEY AUTOINCREMENT, 
                                USER CHAR(30) NOT NULL, 
                                PASSWORD CHAR(30) NOT NULL,
                                PERMGROUP CHAR(30) NOT NULL,
                                REGISTER INTEGER,
                                LASTLOGIN INTEGER 
                                )"
    ;
                if(
    $query $this->db->exec($sql)) {
                    return 
    true;
                } 
    mfg Marco

  • #2
    Ein return true macht im Konstruktor keinen Sinn.

    Außerdem sollte in einem Konstruktor keine Datenbankverbindung hergestellt werden. Übergib das Datenbankobjekt als Parameter an den Konstruktor.

    Kommentar


    • #3
      Hallo,

      ok vielen dank für den Tipp!

      Mein Konstruktor sieht nun so aus:
      PHP-Code:
          public function __construct($sqlite3) {
              if(
      $sqlite3 instanceof SQLite3) {
                  
      $this->db $sqlite3;
              } else {
                  
      $this->create_error_log("Pfad:" BASE_LIB_DATA " \r\nFehler: .\r\n" $sqliteerror);
              }
          } 
      Doch leider immer noch der gleiche Fehler.
      Kann man nach einem Prepare Statement noch eins ausführen oder muss man einen Befehl wie reset oder so anwenden?

      mfg Marco

      Kommentar


      • #4
        Zitat von Marcoru Beitrag anzeigen
        Hallo,

        ok vielen dank für den Tipp!

        Mein Konstruktor sieht nun so aus:
        PHP-Code:
            public function __construct($sqlite3) {
                if(
        $sqlite3 instanceof SQLite3) {
                    
        $this->db $sqlite3;
                } else {
                    
        $this->create_error_log("Pfad:" BASE_LIB_DATA " \r\nFehler: .\r\n" $sqliteerror);
                }
            } 
        Unnötig. Das hier reicht vollkommen:

        PHP-Code:
        public function __construct(SQLite3 $db) {
            
        $this->db $db;

        Zitat von Marcoru Beitrag anzeigen
        Doch leider immer noch der gleiche Fehler.
        Kann man nach einem Prepare Statement noch eins ausführen oder muss man einen Befehl wie reset oder so anwenden?
        Was sagt das Handbuch dazu?

        Kannst du bitte ein vollständiges Beispiel posten, bei dem dieses Verhalten auftritt?
        Zuletzt geändert von h3ll; 02.03.2014, 22:22.

        Kommentar


        • #5
          Hallo,

          habe es jetzt herausgefunden!
          Habe vergessen nach dem Result die Funktion reset aufzurufen.

          Vielen Dank!

          mfg Marco

          Kommentar

          Lädt...
          X