我创建了连接到数据库,但我不知道为什么它总是创建一个新的空数据库。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";
这是预期的行为。当调用SQLite时,它查找指定的文件名。
$db = new PDO("sqlite:".__DIR__."/database.sql");
如果数据库。如果找不到SQL文件,它将尝试创建文件。
另外,为了清晰起见,您可能希望将文件扩展名从.sql更改为.sqlite。您需要将扩展名更改为适当的文件类型,因为. SQL是脚本文件(用于DML或DDL操作的SQL语句),而不是实际的SQLite数据库文件。通常,SQLite文件扩展名包括:.db, 。sqlitedb , 。sqlite, sqlite 3 ()sqlite3 , 。s3db, .sl3), SQLite 2 (。sl2 , 。S2db , .db2)等等。列出您的目录文件以查找确切的文件扩展名:
$db = new PDO("sqlite:".__DIR__."/database.db");
如果您需要创建数据库,调用命令行(PHP可以使用exec()
)到sqlite shell以将数据库文件保存到磁盘。然后,使用PDO连接PHP。