2013-05-24 11 views
12

Ich habe eine SQLite-Datenbank und versuche, mich mit PHP zu verbinden. Dies ist, was ich verwende:Wie verbinde ich mich mit einer SQLite-Datenbank mit PHP?

<?php 
    $dbconn = sqlite_open('combadd.sqlite'); 

    if ($dbconn) { 
     $result = sqlite_query($dbconn, "SELECT * FROM combo_calcs WHERE options='easy'"); 
     var_dump(sqlite_fetch_array($result, SQLITE_ASSOC)); 
    } else { 
     print "Connection to database failed!\n"; 
    } 
?> 

Allerdings bekomme ich diesen Fehler:

Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database in C:\xampp\htdocs\deepthi\combadd\combadd_db.php on line 4
Connection to database failed!

Was ist falsch und wie kann ich es beheben?

+0

Hallo @user, willkommen DAMIT. Ich * empfehle * Ihnen dringend, PDO zu verwenden - es ist wirklich einfach, flexibel und sicherer als alles, was Sie (oder ich) selbst herausfinden werden. http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps-pdo-for-database-access/ – Ben

Antwort

24

Try PDO zu verwenden statt sqlite_open:

$dir = 'sqlite:/[YOUR-PATH]/combadd.sqlite'; 
$dbh = new PDO($dir) or die("cannot open the database"); 
$query = "SELECT * FROM combo_calcs WHERE options='easy'"; 
foreach ($dbh->query($query) as $row) 
{ 
    echo $row[0]; 
} 
+0

es war erstaunlich Antonio. Ich muss Daten aus Excel-Blatt in SQLite mit PHP einfügen. kannst du mir bitte helfen? danke – user2412936

+0

Sie finden einige Beispiele hier: http://www.if-not-true-then-false.com/2012/php-pdo-sqlite3-example/. Außerdem sollten Sie in Betracht ziehen, ein Framework zu verwenden, um diese sich wiederholenden Aufgaben wie das Verbinden mit einer Datenbank, das Einfügen, Aktualisieren oder Löschen von Datensätzen zu erledigen. Werfen Sie einen Blick auf Laravel: http://four.laravel.com/ –

+0

muss ich installieren, dass xls Daten aus PHP-Code lesen – user2412936

1
<?php 

    if ($db = sqlite_open('sampleDB', 0666, $sqliteerror)) { 
     $result = sqlite_query($db, 'select bar from foo'); 
     var_dump(sqlite_fetch_array($result)); 
    } else { 
     die($sqliteerror); 
    } 

?> 

Stellen Sie sicher, SQLite-Unterstützung aktivieren, aktivieren Sie phpinfo()

Eine andere Lösung für Ihr Problem ist: Mit sqlite3 Modul statt

class DB extends SQLite3 
{ 
     function __construct($file) 
     { 
      $this->open($file); 
     } 
} 

$db = new DB('sampleDB.sqlite'); 
8

Verbindung zur Datenbank Der folgende PHP-Code zeigt, wie man sich mit einer bestehenden Datenbank verbindet. Wenn die Datenbank nicht existiert, wird sie erstellt und schließlich wird ein Datenbankobjekt zurückgegeben.

<?php 
    class MyDB extends SQLite3 
    { 
     function __construct() 
     { 
     $this->open('combadd.sqlite'); 
     } 
    } 
    $db = new MyDB(); 
    if(!$db){ 
     echo $db->lastErrorMsg(); 
    } else { 
     echo "Opened database successfully\n"; 
    } 
?> 

Jetzt lassen Sie uns über Programm laufen, um unsere Datenbank test.db im aktuellen Verzeichnis zu erstellen. Sie können Ihren Weg entsprechend Ihrer Anforderung ändern. Wenn Datenbank erfolgreich erstellt wird, dann wird es folgende Meldung geben:

Open database successfully 

SELECT Betrieb

Nach PHP-Programm zeigt, wie wir holen und Anzeige Datensätze können

<?php 
    class MyDB extends SQLite3 
    { 
     function __construct() 
     { 
     $this->open('combadd.sqlite'); 
     } 
    } 
    $db = new MyDB(); 
    if(!$db){ 
     echo $db->lastErrorMsg(); 
    } else { 
     echo "Opened database successfully\n"; 
    } 

    $sql =<<<EOF 
     SELECT * FROM combo_calcs WHERE options='easy'; 
EOF; 

    $ret = $db->query($sql); 
    while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
     echo "ID = ". $row['ID'] . "\n"; 
    } 
    echo "Operation done successfully\n"; 
    $db->close(); 
?> 
Verwandte Themen