2013-05-24 27 views
12

私はSQLiteデータベースを持っており、PHPで接続しようとしています。これは私が使用しているものです:PHPを使用してSQLiteデータベースに接続するにはどうすればよいですか?

<?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"; 
    } 
?> 

をしかし、私はこのエラーを取得する:

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!

は、私はそれを何間違っているとどのように修正することができますか?

+0

こんにちは@userをフェッチして表示記録する方法を示していますそう。 PDOを使用することを強くお勧めします - あなた(または私)があなた自身(自分自身)によって思い付くものよりも、本当に簡単で、柔軟性があり、より安全です。 http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/ – Ben

答えて

24

代わりsqlite_openのPDOを使用してみてください:

$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

それはAntonioを驚かせた。私はPHPを使用してExcelシートからsqliteにデータを挿入する必要があります。手伝ってくれませんか?ありがとう – user2412936

+0

いくつかの例がここにあります:http://www.if-not-true-then-false.com/2012/php-pdo-sqlite3-example/また、フレームワークを使用して、データベースへの接続、レコードの挿入、更新、削除などの繰り返しタスクを実行することを検討する必要があります。 Laravelを見て:http://four.laravel.com/ –

+0

PHPコードからxlsのデータを読むためにその1つをインストールする必要があります – 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); 
    } 

?> 

(のphpinfoを確認し、SQLiteのサポートが有効であることを確認してください)

一つの問題に対する別の解決策がある:代わりにsqlite3のモジュールを使用して

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

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

データベースに接続する 次のPHPコードは、既存のデータベースに接続する方法を示しています。データベースが存在しない場合は作成され、最後にデータベースオブジェクトが返されます。

<?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"; 
    } 
?> 

上記のプログラムを実行して、現在のディレクトリにデータベースtest.dbを作成しましょう。必要に応じてパスを変更することができます。データベースが正常に作成された場合、それは次のようなメッセージ得られます:PHPプログラムに続き

Open database successfully 

SELECT操作

を私たちはへようこそ

<?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(); 
?>