如何使用 PHP 连接到 SQLite 数据库?

2022-08-30 18:20:31

我有一个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
行中的数据库 连接到数据库失败!

出了什么问题,我该如何解决?


答案 1

尝试使用 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];
}
$dbh = null; //This is how you close a PDO connection

答案 2

连接到数据库以下 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";
   }
?>

现在,让我们运行上面的程序来创建我们的数据库测试.db当前目录中。您可以根据需要更改路径。如果数据库已成功创建,则它将给出以下消息:

Open database successfully

选择操作

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

推荐