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

zd287kbt  于 2023-11-21  发布在  SQLite
关注(0)|答案(3)|浏览(134)

我有一个SQLite数据库,并试图连接到它与PHP.然而,我得到这个错误:

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

连接到数据库失败!
有什么问题,我该如何解决?

qrjkbowd

qrjkbowd1#

尝试使用PDO而不是sqlite_open:

$dir = 'sqlite:/[YOUR-PATH]/combadd.sqlite';
$dbh  = new PDO($dir);
$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

字符串

hvvq6cgz

hvvq6cgz2#

连接到数据库下面的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();
?>

3pvhb19x

3pvhb19x3#

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

相关问题