在我的 Centos7 服务器上使用 PHP 和 SQLite3

我有 PHP 5.4.16 在我的 Centos7 服务器上运行 SQLite3 3.7.17。我可以使用 python 写入数据库并创建数据库,但是当我尝试使用 PHP 在我的网站上读取它时,我无法使用 SQLite3 做任何事情。


<?php


$db = new SQLite3('var/www/html/WebDatabase/AccountDevices.db');


$result = $db->query('SELECT * FROM log');

var_dump($result->fetchArray());

?>

正如你所看到的,我的代码是基本的,所以我认为这不是问题,只是 php 不能很好地与 SQLite3 配合使用。


我当前的 php.ini 文件:


[sqlite]

http://php.net/sqlite.assoc-case

;sqlite.assoc_case = 0


[sqlite3]

sqlite3.extension_dir=/usr/bin/sqlite3

我收到了一个错误,即未安装 SQLite,然后我安装了 php-pdo 但也无法使其正常工作。php -m


[PHP Modules]

bz2

calendar

Core

ctype

curl

date

ereg

exif

fileinfo

filter

ftp

gettext

gmp

hash

iconv

json

libxml

mhash

mysql

mysqli

openssl

pcntl

pcre

PDO

pdo_mysql

pdo_sqlite

Phar

readline

Reflection

session

shmop

SimpleXML

sockets

SPL

sqlite3

standard

tokenizer

xml

zip

zlib


[Zend Modules]

所以 SQLite3 开启了,PDO 也开启了(我不知道这是什么。)


我在这里搞砸了什么?我已经做了大约 4 个小时,尝试了很多东西来解决这个问题。我现在遇到了这个错误。


PHP Fatal error:  Uncaught exception 'PDOException' with message 'invalid data source name' in /var/www/html/accounts.php:3

Stack trace:

#0 /var/www/html/accounts.php(3): PDO->__construct('var/www/html/We...')

#1 {main}

  thrown in /var/www/html/accounts.php on line 3

怎么办?


德玛西亚99
浏览 350回答 1
1回答

猛跑小猪

PHP 致命错误:在 /var/www/html/accounts.php:3 中带有消息“无效数据源名称”的未捕获异常“PDOException”如果您使用的是 PDO,那么您不仅要使用文件名创建句柄,还必须提供格式正确的 DSN 字符串,如此处所述。就像是:$db&nbsp;=&nbsp;new&nbsp;PDO('sqlite:var/www/html/WebDatabase/AccountDevices.db');请注意,您可能想要一个完全限定的路径而不是相对路径:$db&nbsp;=&nbsp;new&nbsp;PDO('sqlite:/var/www/html/WebDatabase/AccountDevices.db');有关PDO/SQLite 的一些好的示例,请参见此处。
打开App,查看更多内容
随时随地看视频慕课网APP