Как подключиться к базе данных SQLite с помощью PHP?

У меня есть база данных SQLite и я пытаюсь подключиться к ней с помощью 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"; } ?> 

Однако я получаю эту ошибку:

Предупреждение: sqlite_open() [function.sqlite-open]: файл зашифрован или не является базой данных в C:\xampp\htdocs\deepthi\combadd\combadd_db.php в строке 4
Не удалось подключиться к базе данных.

Что случилось и как я могу это исправить?

Попробуйте использовать PDO вместо 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]; } 

Подключение к базе данных После кода 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 в текущем каталоге. Вы можете изменить свой путь согласно вашему требованию. Если база данных успешно создана, тогда будет указано следующее сообщение:

 Open database successfully 

Операция SELECT

Следующая программа 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"; } $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(); ?> 
 <?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); } ?> 

Убедитесь, что поддержка sqlite включена, проверьте phpinfo ()

Еще одно решение вашей проблемы: вместо этого использовать модуль sqlite3

 class DB extends SQLite3 { function __construct( $file ) { $this->open( $file ); } } $db = new DB( 'sampleDB.sqlite' );