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

use*_*936 22 php sqlite

我有一个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";
    }
?>
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

警告:sqlite_open()[function.sqlite-open]:文件已加密或不是C:\xampp\htdocs\deepthi\combadd\combadd_db.php第4行的数据库
连接数据库失败!

怎么了,怎么解决?

Ant*_*iro 34

尝试使用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
Run Code Online (Sandbox Code Playgroud)

  • 你会在这里找到一些例子:http://www.if-not-true-then-false.com/2012/php-pdo-sqlite3-example/.此外,您应该考虑使用框架来帮助执行重复性任务,如连接到数据库,插入,更新,删除记录.看看Laravel:http://four.laravel.com/ (3认同)

Yog*_*gus 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";
   }
?>
Run Code Online (Sandbox Code Playgroud)

现在让我们运行程序以在当前目录中创建我们的数据库test.db.您可以根据自己的要求更改路径.如果成功创建了数据库,那么它将提供以下消息:

Open database successfully
Run Code Online (Sandbox Code Playgroud)

选择操作

以下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();
?>
Run Code Online (Sandbox Code Playgroud)