我创建了与数据库的连接,但我不知道它为什么总是创建一个新的空database.sql文件。当我重命名数据库文件时,他总是创建一个新文件,而不是给我一个错误。
这是我的代码
try {
$db = new PDO("sqlite:".__DIR__."/database.sql");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
echo "Unable to connect";
echo $e->getMessage();
exit;
}
echo "Connected to the database";
提前致谢! 丹尼斯
答案 0 :(得分:2)
这是预期的行为。调用SQLite时,它会查找指定的文件名。
$db = new PDO("sqlite:".__DIR__."/database.sql");
如果找不到database.sql文件,它将尝试创建该文件。
另外,为了清楚起见,您可能希望将文件扩展名从.sql更改为.sqlite。
答案 1 :(得分:-1)
您需要将扩展名更改为相应的文件类型,因为.sql是脚本文件(DML或DDL操作的SQL语句),而不是实际的SQLite数据库文件。通常,SQLite文件扩展名包括: .db , .sqlitedb , .sqlite ,SQLite 3( .sqlite3 , .s3db , .sl3 ),SQLite 2( .sl2 , .s2db , .db2 < / em>)仍然是more。列出您的目录文件以找到确切的文件扩展名:
$db = new PDO("sqlite:".__DIR__."/database.db");
如果需要创建数据库,请将命令行(PHP可以使用exec()
)调用sqlite shell以将数据库文件保存到磁盘。然后,使用PDO连接到PHP。