[PHP5] SQLITE3 und PDO problem

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

  • [PHP5] SQLITE3 und PDO problem

    Es geht um folgendes Problem

    PHP-Code:
    $DB dbSQLiteConnection();
    $sql $DB->query('SELECT * from Router_Reconnect ORDER by Router_Name');
    if( 
    $sql === false) die("none entry found"); 
    Bei lokaler PHP installation funktioniert alles einwandfrei und das Script geht weiter.
    Sowie es online ist, unterschiedliche Server getestet kommt es über die nicht raus. Fehlermeldung ist hier das Datenbank nicht gefunden wird.
    Wenn ich aber nun if( $sql === false) die("none entry found");
    rausnehme und das Script weiterlaufen lasse wird am Ende eine andere DB Abfrage 100% ausgeführt. Aber eben nicht diese.
    Ich bin schon soweit gekommen das es hier ran liegt ORDER by Router_Name bei ID, läuft das Script auch online einwandfrei. Aber sowie das Script nach Strings sortieren soll kommt es zu der Fehlermeldung (Online)

    Getestet PHP Versionen
    Online: 5.2.5 und 5.2.6
    Offline: 5.2.6 und 5.2.8
    Zuletzt geändert von dpaehl; 08.02.2009, 17:02.

  • #2
    Die genaue Fehlermeldung wäre nicht schlecht. Und die Funktion dbSQLiteConnection.

    Kommentar


    • #3
      Hier die original Fehlermeldung:

      Array ( [0] => HY000 [1] => 14 [2] => unable to open database file )
      PHP-Code:
      function dbSQLiteConnection()
      {
         if(
      $dbHandle = new PDO('sqlite:reconnect.s3db')) {
            return 
      $dbHandle;
         } else {
            die(
      "db error");
         }

      Das öffnen geht ja einwandfrei, das ist nicht das Problem

      Kommentar


      • #4
        unable to open database file
        Ja, ist die Datei denn auch vorhanden und besitzt der ausführende User entsprechende Rechte an der Datei?

        Kommentar


        • #5
          Wenn ich aber nun if( $sql === false) die("none entry found");
          rausnehme und das Script weiterlaufen lasse wird am Ende eine andere DB Abfrage 100% ausgeführt. Aber eben nicht diese.
          Oder wenn ORDER BY Router_Name nach ORDER BY ID ändere geht es. Also findet er die DB und hat die entsprechenden Rechte.

          Ich bin auch kein Anfänger. Ein ähnliches Script habe ich mit SQLITE2 am laufen.


          Auch ein anderes Script klappt auch unter SQLITE3


          PHP-Code:
          res$dbHandle->query('SELECT * FROM Router_Reconnect WHERE Router_Name LIKE "'.$name.'"'); 
          Hier werden alle Router_Namen aus der DB aufgelistet, ohne Fehlermeldung

          Kommentar


          • #6
            Hat keiner irgendeine Idee? Das ganze ist "nur" ein Problem von der PHP.INI. Habe aber bisher noch nicht rausgefunden welche dafür verantwortlich ist.

            Hier mal zwei Screenshots:


            Dieser screenshot ist lokal hier unter Ubuntu 8.1 erstellt. Unter Windows funktioniert es auch so.

            Identisches Script auf einem Webspace.


            Auf welchen ich das kopiere ist vollkommen egal.

            Wer es selbst testen will hier ist die DB

            Kommentar


            • #7
              Vermutung: Wenn es wirklich an der ORDER BY-Klausel liegt(?) - dann koennte es u.U. sein, dass die Datenbank versucht, zwecks Sortierung ein temporaere Datei zu erstellen, und dazu aber nicht die benoetigten Rechte hat ...
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von wahsaga
                Vermutung: Wenn es wirklich an der ORDER BY-Klausel liegt(?) - dann koennte es u.U. sein, dass die Datenbank versucht, zwecks Sortierung ein temporaere Datei zu erstellen, und dazu aber nicht die benoetigten Rechte hat ...
                Es liegt zwar an der Order by Klausel aber das Problem ist ändere ich das ganze Online in Order by ID dann gibt es keine Probleme.
                Und auch kann ich nicht sagen wo bei PDO gebenüber sqlite2 der Unterschied sein soll. Denn bei sqlite2 klappt das ganze ohne Probleme.

                Oder
                SELECT * FROM Router_Reconnect WHERE Router_Name LIKE
                das funktioniert auch ohne Probleme.

                Kommentar

                Lädt...
                X