[PHP5] SQLITE3 und PDO problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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
    Last edited by dpaehl; 08-02-2009, 17:02.

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

    Comment


    • #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

      Comment


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

        Comment


        • #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

          Comment


          • #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

            Comment


            • #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.

              Comment


              • #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.

                Comment

                Working...
                X