【问题标题】:how to access sqlite3 database from cpanel using php如何使用 php 从 cpanel 访问 sqlite3 数据库
【发布时间】:2017-05-09 07:55:25
【问题描述】:

朋友们,

         class MyDB extends SQLite3
         {
         function __construct()
          {
              $this->open('/var/cpanel/eximstats_db.sqlite3');
            }
         }
         $db = new MyDB();
         if(!$db){
         echo $db->lastErrorMsg();
         } else {
         echo "Opened database successfully\n";
         }

我使用了来自服务器的 eximstats 数据库。在更新我的服务器时,eximstats db 得到了 SQLite3。我是 SQLite3 的新手,尽管我已经尝试使用上面的 php 代码多次访问该数据库,但我从来没有得到结果。请帮助我改进此编码。

这段代码是否正确。运行此程序时,我收到“致命错误:未捕获的异常 'Exception' 并显示消息'无法打开数据库:无法打开数据库文件'”

谢谢

【问题讨论】:

  • @DavidDomain 谢谢你的回答。我已经安装了 PDO 驱动程序,然后它显示未捕获的异常“PDOException”,并显示消息“找不到驱动程序”
  • 您无法打开数据库,因为您尝试以非 root 用户身份访问数据库,但数据库归 root 用户所有,并且只能由 root 用户写入。试试这个:stackoverflow.com/questions/44499844/…

标签: php sqlite


【解决方案1】:

您可以简单地使用 PHP PDO 接口来访问您的 SQLite3 数据库。

$db = new PDO('sqlite:/var/cpanel/eximstats_db.sqlite3')

PDO_SQLITE DSN

要访问磁盘上的数据库,请将绝对路径附加到 DSN 前缀。

只需确保您的系统上安装了适用于 SQLite 3.x 的 PDO 驱动程序即可。

现在选择一个表就行了:

$result = $db->query('SELECT * FROM tablename');
foreach( $result as $row ) {
  print_r( $row );
}

【讨论】:

  • 我已经尝试了 PDO 命令,但我仍然收到错误,现在错误是“未捕获的异常 'PDOException' 和消息 '找不到驱动程序'”通过使用 phpinfo() 它表明 PDO 驱动程序已启用。我接下来要做什么
  • 您使用的是哪个 PHP 版本、操作系统?
  • 我试过 $db = new PDO('myservername/sqlite:/var/cpanel/eximstats_db.sqlite3');这是作品吗
  • php 版本 5.6.24
  • 您可能需要安装 PDO sqlite 驱动程序。例如。 sudo apt-get install php5-sqlite 然后重新启动 apache 或您正在使用的任何服务器 sudo service apache2 restart,同时确保您对 /var/cpanel/eximstats_db.sqlite3 具有读写访问权限。
猜你喜欢
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 2011-11-02
  • 2022-08-16
  • 2011-06-29
  • 2013-08-31
相关资源
最近更新 更多