Verbindung zu SQLite-Datenbank
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
date
datenbank
dom
einzige datei
extension
fehler
ftp
herstellen
installation
komplette inhalt
modul
not
nutz
standard
test
text
tun
url
verzeichnis
-
Ich möchte eine Verbindung zu einer SQLite-Datenbank herstellen. Die Datenbankdatei (mit einem SQLite-Datenbank-Verwaltungsprogramm mit GUI erstellt) liegt im selben Verzeichnis. Die Variable $password ist leer, weil ich ja kein Passwort dafür habe. Der Code
wirft den Fehler$var = new PDO('sqlite:'.$file, $password);
Connection failed: could not find driver
Was muss anders machen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
das-koenigreich schrieb:
Ich möchte eine Verbindung zu einer SQLite-Datenbank herstellen. Die Datenbankdatei (mit einem SQLite-Datenbank-Verwaltungsprogramm mit GUI erstellt) liegt im selben Verzeichnis. Die Variable $password ist leer, weil ich ja kein Passwort dafür habe. Der Code
wirft den Fehler$var = new PDO('sqlite:'.$file, $password);
Connection failed: could not find driver
Was muss anders machen?
Heißt dein sqlite Server denn auch 'sqlite' ??
Hier auf Lima gibts ja nur beipiel
'ftp.lima-city.de'
'mysql.lima-city.de'
'download.lima-city.de' -
SQLite ist nicht MySQL. SQLite ist eine einzige Datei (so habe ich das zumindest verstanden) in der alle Datenbanktabellen und -Einträge gespeichert werden. Mit Lima hat das nichts zu tun. Das Script liegt außerdem auf meinem Rechner und nicht bei Lima.
-
das-koenigreich schrieb:
SQLite ist nicht MySQL. SQLite ist eine einzige Datei (so habe ich das zumindest verstanden) in der alle Datenbanktabellen und -Einträge gespeichert werden. Mit Lima hat das nichts zu tun. Das Script liegt außerdem auf meinem Rechner und nicht bei Lima.
Sorry ich hab sowieso falsch geschaut.. Ich hatte gelesen:
Connection failed: could not find driver
Obwohl da ja steht:
Connection failed: could not find driver
Und damit ist dein Problem auch schon im Ansatz gelöst und zwar fehlt dir der Treiber :P
Les dir doch das hier mal durch
Da wird dir die Installation von POD SQLITE beschrieben ;) -
Also in /etc/php5/conf.d/pdo.ini steht bei mir nur
Das ist der komplette Inhalt.; configuration for php PDO module extension=pdo.so
Ich nutze übrigens PHP von der Kommandozeile. -
das-koenigreich schrieb:
Also in /etc/php5/conf.d/pdo.ini steht bei mir nur
Das ist der komplette Inhalt.; configuration for php PDO module extension=pdo.so
Ich nutze übrigens PHP von der Kommandozeile.
Hier steht doch alles:
Also as a side note, to get SQLite compiled as a PDO, I had to:
1) configure with
...
--enable-pdo=shared \
--with-sqlite=shared \
--with-pdo-sqlite=shared
--with-zlib
... \
'make && make install' if configure is successful.
2) Make sure the pdo libs were copied/installed to the correct directory. On my installation it was /usr/local/include/php/ext/pdo/
3) Make these changes in my php.ini:
- change ' extension_dir = "./" ' to ' extension_dir="/usr/local/include/php/ext/pdo/" '
- add/edit in this order:
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
4) test php with : 'php -m' at the command line and solve any issues from there. Mostly php.ini config issues. Also restart the http service!
Auf Deutsch:
1) Configuration (das was da steht in Konsole eingeben)
2) Pfad korrigieren
3) php.ini bzw. bei dir jetzt 'pdo.ini' erweitern mit den oben genannten Zeilen
4) ist nur ein Test, kann man auslassen! -
Ich habe bis jetzt nur php5 und php5-cli installiert (und außerdem mal LAMPP benutzt, das muss man unter Linux aber nicht installieren), trotzdem kann ich PDO für MySQL nutzen. Das funktionierte einfach so. Wen ich
eingebe, kommt das:php -m
Da ist also auch PDO (in der Mitte) dabei.$ php -m [PHP Modules] bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv json libxml mbstring mhash openssl pcntl pcre PDO Phar posix readline Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib [Zend Modules]
-
das-koenigreich schrieb:
Ich habe bis jetzt nur php5 und php5-cli installiert (und außerdem mal LAMPP benutzt, das muss man unter Linux aber nicht installieren), trotzdem kann ich PDO für MySQL nutzen. Das funktionierte einfach so. Wen ich
eingebe, kommt das:php -m
Da ist also auch PDO (in der Mitte) dabei.$ php -m [PHP Modules] bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv json libxml mbstring mhash openssl pcntl pcre PDO Phar posix readline Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib [Zend Modules]
Es geht ja weder um PDO noch um Mysql es geht um PDO Sqlite ;) -
Fakt ist: SQLite geht sowohl mit, als auch ohne PDO hier auf Lima-City.
<?php try { $db = new PDO('sqlite:dbTest_PDO.sqlite'); $db->exec("CREATE TABLE Testtable (Id INTEGER PRIMARY KEY, Title TEXT, Text TEXT)"); $db->exec("INSERT INTO Testtable (Title, Text) VALUES ('Hello World', 'Dies ist der 1. Test');". "INSERT INTO Testtable (Title, Text) VALUES ('Bye World', 'Noch ein Test');"); print "<table border=1>"; print "<tr><td>Id</td><td>Title</td><td>Text</td>"; $result = $db->query('SELECT * FROM Testtable'); foreach($result as $row) { print "<tr><td>".$row['Id']."</td>"; print "<td>".$row['Title']."</td>"; print "<td>".$row['Text']."</td>"; } print "</table>"; $db = NULL; } catch(PDOException $e) { print 'Exception : '.$e->getMessage(); } ?>
Funktioniert problemlos. Dein Fehler: Es gibt kein Passwort für SQLite Datenbanken. Dementsprechend gehört der Parameter dort nicht hin.
Beitrag zuletzt geändert: 17.6.2011 17:30:47 von fabo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage