【问题标题】:Connect to localhost sqlite db with php使用 php 连接到 localhost sqlite db
【发布时间】:2016-07-26 00:02:17
【问题描述】:

我已安装并运行 UwAmp。我已经在本地主机上设置了一个 mysqlite 数据库,我正在尝试使用以下 PHP 代码连接到它:

<?php
    try
{
    /*** connect to SQLite database ***/
    $dbh = new PDO("sqlite:graspe.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");
}
echo "Database loaded successfully ....";
?>

数据库被称为gracee,当我运行这个脚本时,它说它已成功连接。如果我将数据库的名称更改为其他名称,它仍会返回成功连接的消息。我究竟做错了什么?提前致谢。

【问题讨论】:

  • 我感觉您的 try/catch 没有发挥作用。删除 echo "Database loaded successfully ...."; 后会发生什么?这个定义在哪里 $error ?错误报告应该让您对此有所了解。
  • 当我删除回显行时,我得到“已创建句柄......”如果我将数据库的名称更改为其他名称,我仍然会收到相同的成功消息。跨度>
  • Nothing.... 启用了所有错误级别并且代码仍然报告成功。我想知道它每次运行时都会创建一个新数据库吗?

标签: php sqlite uwamp


【解决方案1】:

默认情况下,当您构建与 sqlite 数据库的新连接时 - 如果该数据库不存在,则会创建该数据库。

如果您想测试您的代码以确保它在无法创建数据库时引发异常,您可以尝试写入您无权访问的文件名 (new PDO("sqlite:/");)

【讨论】:

  • 或者您只需检查数据库文件是否存在/是否可写:)
  • 我尝试了上面的代码并收到错误消息 SQLSTATE[HY000] [14] 无法打开数据库文件数据库-未-成功加载..查询已关闭!!! PDOException: SQLSTATE[HY000] [14] 无法在 C:\Users\max\Desktop\Graspe\graspe\db_connect.php 中打开数据库文件:13 堆栈跟踪:#0 C:\Users\max\Desktop\Graspe\graspe \db_connect.php(13): PDO->__construct('sqlite:/') #1 {main}
  • @KPM,这是意料之中的 - 这正是您的代码所做的。
  • 所以从那条消息来看,我假设它只是在每次运行时创建一个新的数据库,实际上并没有连接到我在本地主机上的 PHPmyadmin 中设置的数据库。有什么想法吗?
  • 是的..回头看控制面板,我把它们两个混在一起了。谢谢(你的)信息。我将尝试使用 MySQL 命令进行连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2016-08-03
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多