我正在尝试使用PHP连接到SQLite。我通过将CSV文件导入到三个表的表中来创建数据库。但是,我无法使用以下代码进行连接:
$dbhandle = sqlite_open('db/pokedex.db', 0666, $error);
if(!$dbhandle) die ($error);
这会返回以下错误:
Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database in /pokedex/configpokedexdb-sqlite.php on line 12
file is encrypted or is not a database
try
{
//connect to SQLite database
$dbhandle = new PDO("sqlite:db/pokedex.db"); //sqlite:VPN0.sqlite
// echo "Handle has been created ...... <br><br>";
}
catch(PDOException $e)
{
echo $e->getMessage();
echo "<br><br>Database -- NOT -- loaded successfully .. ";
die( "<br><br>Query Closed !!! $error");
}
之后我收到以下错误:
Warning: sqlite_exec() expects parameter 1 to be resource, object given in /home/rawdco81/public_html/pokedex/index-sqlite.php on line 53
在此之前,我尝试运行new PDO("sqlite:VPN0.sqlite");
这是该网站提供的内容,但这显然是错误的,因为它根本没有指向我的.db文件。您将在函数调用旁边的注释中看到这段代码。
我很难连接数据库......这样做的正确方法是什么?
另外,我正在运行PHP 5.2.13版。
已编辑:我在错误的位置粘贴了错误的错误消息。
答案 0 :(得分:1)
现在我仔细看看..,我认为 在第二个代码段成功连接了!您不应该使用sqlite_exec
串联w / PDO
;这是SQLite的两个不同的PHP接口。
第一个代码被轰炸的原因是遗留库不支持PDO v3。一旦你尝试对我认为的sqlite_exec
对象运行PDO
,第二部分代码就会被轰炸。
我敢打赌,如果你在try / catch之后加上var_dump($dbhandle);
,你会发现你已经有了一个初始化的PDO对象。
只是阅读使用PDO来运行查询,你应该是金色的!