我有一个 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";
}
?>
但是,我收到此错误:
警告:
[function.sqlite-open]:文件已加密或不是第 4 行sqlite_open()
中的数据库C:\xampp\htdocs\deepthi\combadd\combadd_db.php
连接数据库失败!
出了什么问题,如何解决?
尝试使用 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
连接到数据库 以下 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
选择操作
以下 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' );