[GELÖST]portieren von php projekt von windows nach rpi3 b+ geht nicht sqlite3 could not prepare statement 1

  • Hallo liebes Forum,

    ich habe unter Windows mit apache24 und php 7.3 eine kleine Anwendung gebastelt, die sqlit3 als Datenbank nutzt.

    Unter Windows funtzt das auch alles, doch wenn ich das auf den rpi3 b+ schiebe bekomme ich den Fehler

    could not prepare statement 1 table not found. Ich habe auf dem rpi3 b+ ebenso apache24 und php7.3 installiert.

    Das Ding läuft komplett offline und somit kann ich bedenkenlos alles auf einem Benutzer machen. Ich habe dann

    also versucht mit sudo chmod -R 777 /var/www/html alles zum lesen und schreiben frei zu geben. Es ist ärgerlich,

    da ja eben alles unter Windows geht. Getestet unter Windows 7 mit apache 24 und php7.3 und unter Windows

    10 ebenso mit apache24 und php7.3 vllt. hat ja jemand nen Lösungsansatz. :wallbash: <- der drückt gut aus was ich gerne

    tun würde. Ich würde das auch mal hosten, wenn sich dass jemand anschauen wollen würde, bzw. ich würde es

    versuchen mal für nen Tag zu hosten.

    Also dann mit freundlichen Grüßen pizzadox9999

  • [GELÖST]portieren von php projekt von windows nach rpi3 b+ geht nicht sqlite3 could not prepare statement 1? Schau mal ob du hier fündig wirst!

    • Offizieller Beitrag

    Ich habe dann

    also versucht mit sudo chmod -R 777 /var/www/html alles zum lesen und schreiben frei zu geben.

    So, und nun kannst Du alles wieder löschen und am Anfang beginnen. :baeh2:

    bekomme ich den Fehler

    could not prepare statement 1 table not found.

    Wer sagt das wann und wo, aber vor allem

    doch wenn ich das auf den rpi3 b+ schiebe

    wie und womit etc. hast Du "das" verschoben? :conf:

  • Also wie schon gesagt ist das Projekt auf Windows entwickelt mit apache 24 und php7.3. Ich bin dann hingegangen und habe diese Anforderungen auch auf dem rpi3 b+ geschaffen. Habe alle so's aktiviert und dann mein Projekt mit Filezilla und putty in den Ordner /var/www/html/ verschoben. Dann auf dem rpi3 b+ den Browser geöffnet nach 127.0.0.1 navigiert und habe dann den Fehler could not prepare statement 1 in table total (ja so heist sie) bekommen, bzw. das php oder sqlite3 (das weis ich jetzt nicht), aber eher sqlite3 diese tabelle eben nicht finden konnte und somit statement 1 im query nicht ausführen konnte.

    Dieser Fehler kam halt aber nie unter Windows. Ich hatte das aber schonmal mit chmod 777 geschafft, weswegen ich das nochmal versuchte. Gibt es denn einen anderen weg php schreibzugriff zu geben?

  • Nach version 1.0.0 wo sich die datebank selbständig durch entsprechende sqlite3 statements erstellte habe ich diese nicht mehr angerührt und immer nur alles andere gelöscht und ersetzt.

    Das weis ich leider nichts, doch von windows kann ich sagen, es ist das selbe ergebniss, da man ja eigentlich überall das selbe php zurück bekommen sollte egal von wo man darauf zugreift, also nicht vom websiten design sonder eher so generell

    • Offizieller Beitrag

    Meine Vermutung ist, dass hier ggf. die Zeilenenden von Windows (CR+LF) bei Linux/Unix (LF) ein Problem darstellen könnten. Das ist zwar nur ins Blaue geraten, aber imho durchaus möglich.

  • Das denke ich irgendwo weniger denn in version 1.0.0 hats ja auch funktioniert, doch halt mit dem update auf 2.1.0 halt eben nicht mehr

    Ich würde dann mal alles nachschauen und mich mit neuen Ergebnissen melden.

    Wer trotzdem noch irgendwelche vorschläge hat, sie sind gerne gehört.

    PS: Was würdest du denn stattdessen vorschlagen anstadt von chmod 777?

    Einmal editiert, zuletzt von pizzadox (17. Februar 2021 um 22:24)

  • den code kann ich zeigen, doch die fehlermeldung leider nicht, da sich dieses gerät extern befindet und ich aktuell keinen zugriff mehr darauf habe

    das wäre die entsprechende zeile, wenn es nicht reicht würde ich das entsprechende dokument hochladen

    $total=$db->query("SELECT * FROM total");

  • Da ist einfach die Datenbank nicht an dem Ort an dem der code sie erwartet. SQLite erzeugt einfach eine neue Datei, aber natürlich sind da keine Tabellen drin. Such mal auf dem ganzen PI zb mit “find / -name datebank.name” (natürlich hen richtigen Namen verwenden!) wo die ist.

  • Schau mal in deinem PHP Code ob da zur Datenbank nicht noch Windows Pfade drin stehen, wie z.B. "c:\xampp\......."

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Also es gibt gut nachrichten ich konnte den Fehler reproduzieren


    Code
    Warning: SQLite3::query(): Unable to prepare statement: 1, no such table: total in C:\Apache24\htdocs\MLS2 - Kopie\php\StatsFeatures.php on line 172
    
    Fatal error: Uncaught Error: Call to a member function fetchArray() on bool in C:\Apache24\htdocs\MLS2 - Kopie\php\StatsFeatures.php:175 Stack trace: #0 C:\Apache24\htdocs\MLS2 - Kopie\php\StatsFeatures.php(128): StatsFeature->getMemberList() #1 C:\Apache24\htdocs\MLS2 - Kopie\php\StatsFeatures.php(19): StatsFeature->getBestStudentAllTime() #2 C:\Apache24\htdocs\MLS2 - Kopie\root\index.php(86): StatsFeature->getBestStudent('ALLTIME', '18.02.2021') #3 {main} thrown in C:\Apache24\htdocs\MLS2 - Kopie\php\StatsFeatures.php on line 175
  • Immer noch die gleiche Diagnose. Falsche Datenbank. Relative Pfade funktionieren da nicht, weil die nicht relative zur PHP Datei sind, wie du vielleicht annimmst. Sondern relative zum ausführenden Prozess. Also IRGENDWO, wo der Apache gerade steht. Was ggf sogar davon abhängt, wie der gestartet wurde.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!