MAMP中的PDO数据库连接问题--一直在创建新的数据库。

问题描述 投票:0回答:1

出于某种原因,这段代码总是返回 "已连接到数据库",即使我尝试测试,尝试捕获块并中断连接。当我改变数据库的名称来测试异常时,它只是创建了一个新的数据库。有什么办法吗?

<?php
try{
$db = new PDO ("sqlite:".__DIR__."/database.db"); 
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch (Exception $e){
    echo 'Caught exception: ',  $e->getMessage();
    exit;
}
echo "Connected to Database";
?>
php pdo
1个回答
1
投票

我相信这是对pdo_sqlite的预期行为:如果你提供了一个不存在的数据库的路径,而PHP能够写入该路径目录下的文件,它将简单地在你提供的文件名下创建数据库。

如果你想测试文件不可写的情况,你可以改变文件权限,使PHP运行的用户没有写的权限。


-1
投票

因为 echo "Connected to Database"; 不在 try 括号中,它将始终与之呼应。

试试这个。

<?php
try{
    $db = new PDO ("sqlite:".__DIR__."/database.db"); 
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    echo "Connected to Database";
} catch (Exception $e){
    echo 'Caught exception: ',  $e->getMessage();
    exit;
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.