sqlite3 load_extension

Alles, was PHP betrifft, kann hier besprochen werden.

sqlite3 load_extension

Postby MiZi » 29. June 2013 21:02

Hallo,

vielleicht kann mit hier jemand einen Tipp geben.

Ich möchte mit PHP eine SQLITE3 Datenbank abfragen. Ich kann die Datenbank auch öffnen, soweit gut.
Leider muss ich eine Extension nachladen damit ich meine Datenbank auch lesen kann, aber dabei scheitere ich leider, egal was ich versuche.

mit sqlite3 datenbank kann ich die Datenbank öffnen, mit .load extension.dll die dll Problemlos laden und loslegen.

Aber mit PHP geht es nicht:

Versuche ich es mit $db->loadExtension('extension.dll');
kommt die Meldung: Warning: SQLite3::loadExtension() [sqlite3.loadextension]: Not supported in multithreaded Web servers in

und schließlich mit dem Befehl: $db->exec("SELECT load_extension('extension.dll')");
kommt die Meldung: Warning: SQLite3::exec() [sqlite3.exec]: not authorized in

sqlite3.extension_dir ist auf den richtige Pfad gesetzt und der Apache auch neu gestartet.
Wenn ich die extension.dll direkt in die php.ini eintrage meldet Apache eine unbekannte dll.

Grüße
MiZi
MiZi
 
Posts: 7
Joined: 13. November 2011 07:58
Operating System: Vista 64

Re: sqlite3 load_extension

Postby Altrea » 29. June 2013 21:47

Hallo MiZi,

Das dynamische Nachladen von PHP Extensions ist mit XAMPP tatsächlich nicht möglich.
Die einzige Möglichkeit ist also die extension direkt über die php.ini zu laden.
Ob dies gelingen kann hängt allerdings sehr stark davon ab, wie, womit und wogegen die Extension kompiliert ist.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8286
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: sqlite3 load_extension

Postby MiZi » 30. June 2013 07:41

Hallo Altera,

soll also heißen, wenn es mit extension=meineextension.dll in der php.ini nicht gelingt, dann muss ich das Projekt vergessen?

Grüße
MiZi
MiZi
 
Posts: 7
Joined: 13. November 2011 07:58
Operating System: Vista 64

Re: sqlite3 load_extension

Postby Altrea » 30. June 2013 08:45

Hallo MiZi,

MiZi wrote:soll also heißen, wenn es mit extension=meineextension.dll in der php.ini nicht gelingt, dann muss ich das Projekt vergessen?

Dann könntest du immernoch versuchen:
  • eine passendere XAMPP Version (oder eines anderen Webserver Stacks) zu finden, bei der die Extension funktioniert
  • eine andere Version deiner kompilierten Extension (im Internet) zu finden, die mit deiner XAMPP Version passt
  • die Extension aus den Quellen heraus selbst zu kompilieren
Vielleicht hast du aber auch schon bei dem Einbinden einen Fehler gemacht. Um das zu beurteilen benötigen wir aber zumindest die vollständige, unveränderte Fehlermeldung und Informationen darüber, was du wie genau gemacht hast

mit freundlichen Grüßen,
Altrea

P.S.:
MiZi wrote:Hallo Altera

Ich wäre dir sehr verbunden, wenn du bei der Anrede auf korrekte Schreibweise achten würdest :?
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8286
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: sqlite3 load_extension

Postby MiZi » 30. June 2013 09:02

Hallo Altrea,

für die falsche Schreibweise Deines Namens möchte ich mich entschuldigen, leider habe ich zwar viel gegen meine Legasthenie‎ getan, ganz los wird man das allerdings nicht, sorry.

Leider habe ich aus urheberrechtlichen Gründen keine Chance die Quelle zu bekommen und selber zu kompilieren, die DLL ist alles was ich bekommen kann.

Die direkte Einbindung in PHP scheitert wohl daran das es keine PHP-Libary ist, ich hatte gehofft das man die gleiche Libary für Sqlite3 für SQL verwenden kann wie auch im Windows-Umfeld.

Die Meldungen sind komplett, es fehlen Scriptnamen und Zeile, die sind wohl eher unerheblich.

Viele Dank für Deine Bemühungen, ich muss das Projekt wohl vergessen oder von einer anderen Seite angehen.

Für die SQLITE3-Datenbank gibt es einen funktionierenden ODBC-Treiber, der auch die DLL korrekt nutzt.
Ich werde mal versuchen so an die Daten zu kommen.

Nochmal Danke.

Grüße
MiZi
MiZi
 
Posts: 7
Joined: 13. November 2011 07:58
Operating System: Vista 64

Re: sqlite3 load_extension

Postby Nobbie » 30. June 2013 16:48

MiZi wrote:Leider habe ich aus urheberrechtlichen Gründen keine Chance die Quelle zu bekommen und selber zu kompilieren, die DLL ist alles was ich bekommen kann.


Das kann nicht sein, SQlite ist Public Domain und hier gibt es den Quellcode für jeden: http://www.sqlite.org/download.html

MiZi wrote:Die direkte Einbindung in PHP scheitert wohl daran das es keine PHP-Libary ist, ich hatte gehofft das man die gleiche Libary für Sqlite3 für SQL verwenden kann wie auch im Windows-Umfeld.


Die DLL php_sqlite3.dll ist Bestandteil der Xampp 1.8.1 Installation und kann auch erfolgreich in php.ini eingebunden werden. Bei mir auf dem Rechner unter Windows8 64bit Professional wird die DLL problemlos geladen.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: sqlite3 load_extension

Postby Altrea » 30. June 2013 18:35

Es gibt auch Erweiterungen, die die SQLite Funktionalität erweitern, wie zum Beispiel SpartiaLite.
Ich habe den Threadersteller in dieser Richtung verstanden. Die Formulierung ist aber durchaus Mehrdeutig.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8286
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: sqlite3 load_extension

Postby Nobbie » 30. June 2013 19:58

Altrea wrote:Es gibt auch Erweiterungen, die die SQLite Funktionalität erweitern, wie zum Beispiel SpartiaLite.


Für solche Fälle wäre er aber definitiv im falschen Forum. So oder so sehe ich aus Sicht von Xampp nicht, wo das Problem liegt.

P.S.: Wobei dieses SpatiaLite auch Public Domain wäre.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04

Re: sqlite3 load_extension

Postby MiZi » 01. July 2013 06:39

Nur zur Klarstellung:
Die betrefende Extension ist eine Extension für SQLITE3 von einem Drittanbieter, der diese erstellt und kompiliert hat.
Und diese Extension bekomme ich nicht als Quellcode. SQLITE3 ist natürlich frei zugänglich.

Die Extension hat direkt nichts mit XAMPP oder PHP zu tun, wird aber benötigt damit die SQLITE3-Datenbanken korrekt gelesen werden können, die ich benötige.
Ich müsste diese also im PHP unter XAMPP nachladen oder zum Start des Apache einbauen und das gelingt mit nicht.
MiZi
 
Posts: 7
Joined: 13. November 2011 07:58
Operating System: Vista 64

Re: sqlite3 load_extension

Postby Altrea » 01. July 2013 10:59

Da sind wir nun in einem Bereich, in dem Support unsererseits nicht mehr geleistet werden kann.

Zu den genannten Möglichkeiten gibt es noch die Möglichkeit den Drittanbieter wieder zu beauftragen die Extension abermals zu kompilieren, dieses mal aber vielleicht inklusive der Möglichkeit diese selbst kompilieren zu können. Denn de facto bist du nun bei jedem Upgrade Abhängig von diesem Drittanbieter, im schlimmsten Fall kannst du dann deine gesamte Datenbank vergessen oder wirst gezwungen einen ungepatchten und damit unsicheren Webserver Stack zu betreiben.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8286
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: sqlite3 load_extension

Postby Nobbie » 01. July 2013 12:01

MiZi wrote:Nur zur Klarstellung:
Die betrefende Extension ist eine Extension für SQLITE3 von einem Drittanbieter, der diese erstellt und kompiliert hat.
Und diese Extension bekomme ich nicht als Quellcode. SQLITE3 ist natürlich frei zugänglich.

Die Extension hat direkt nichts mit XAMPP oder PHP zu tun, wird aber benötigt damit die SQLITE3-Datenbanken korrekt gelesen werden können, die ich benötige.
Ich müsste diese also im PHP unter XAMPP nachladen oder zum Start des Apache einbauen und das gelingt mit nicht.


Damit liegt das Problem ja ganz eindeutig bei diesem Drittanbieter, Extensions von PHP sind nun einmal an bestimmte PHP Releases gebunden und nicht austauschbar, also muss dieser Anbieter auch ein funktionierendes PHP zu dieser Extension liefern.

Xampp ist gänzlich ungeeignet dafür (das ist der Preis für die einfache Installation), da es ein abschlossenes Paket ist ("Distribution"), da auch nicht vom Anwender komponentenweise ersetzt werden kann. Da solltest Du Apache und PHP selbst installieren (nicht aus Xampp) und im Zweifel den Anbieter der SQLITE3 Schnittstelle um ein PHP Paket bitten. Das ist die einzige Möglichkeit.
Nobbie
 
Posts: 8761
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests