2016-11-15 116 views
0

我创建了连接到数据库,但我不知道为什么它总是创建一个新的空的database.sql文件。当我重命名数据库文件时,他总是创建一个新文件,而不是给我一个错误。PHP PDO SQLite连接

这里是我的代码

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"; 

提前感谢! Denis

+1

这是PDO SQLite的工作原理 - 请参阅[本主题](http://stackoverflow.com/a/1893799/4930070)。 –

+1

[用PDO创建新的SQLite数据库]的可能的重复(http://stackoverflow.com/questions/1893767/creating-new-sqlite-dbs-with-pdo) –

+0

“当我重命名数据库文件时,他总是创建一个新的文件,而不是给我一个错误。“正如它应该。如果你想检查文件是否存在,你可以使用'file_exists()' – 2016-11-15 20:18:20

回答

0

这是预期的行为。当SQLite被调用时,它会查找指定的文件名。

$db = new PDO("sqlite:".__DIR__."/database.sql"); 

如果未找到database.sql文件,它将尝试创建该文件。

另外,为了清楚起见,您可能想要将文件扩展名从.sql更改为.sqlite。

0

您需要将扩展​​名更改为适当的文件类型,因为.sql是脚本文件(用于DML或DDL操作的SQL语句),而不是实际的SQLite数据库文件。通常,SQLite的文件扩展名包括:.db的.sqlitedb.sqlite,SQLite的3(.sqlite3.s3db.sl3)时,SQLite 2(.sl2.s2db.db2),仍然是more。列出你的目录中的文件,找到确切的文件扩展名:

$db = new PDO("sqlite:".__DIR__."/database.db"); 

如果你需要创建一个数据库,调用命令行(PHP可以用exec()做)到sqlite的shell保存到磁盘上的数据库文件。然后,用PDO连接到PHP。