当前位置:  开发笔记 > 编程语言 > 正文

为什么我可以在PHP中的SQLite数据库上使用SELECT而不是INSERT?

如何解决《为什么我可以在PHP中的SQLite数据库上使用SELECT而不是INSERT?》经验,为你挑选了1个好方法。

我能够从PHP中的SQLite数据库中检索信息,但不能写入它.例如,此代码完全正常:

$db = new PDO("sqlite:foo.db");
$rowCount = $db->query("SELECT COUNT(*) FROM tblname;")->fetchColumn(0);
echo $rowCount; // works as it should

但是,以下代码段会导致"无法打开数据库文件"错误:

$db = new PDO("sqlite:foo.db");
$db->exec("INSERT INTO tblname VALUES(NULL, 'val1', 'val2');") or die(print_r($db->errorInfo(), true));

当我从命令行而不是PHP中执行上述INSERT时,我得到了预期的结果(tblname中的新行):

$ sqlite3 foo.db
sqlite> INSERT INTO tblname VALUES(NULL, 'val1', 'val2');

这是我第一次使用PDO(或SQLite),所以任何帮助都将非常感谢.



1> oops..:

检查运行PHP脚本的用户是否有权编写foo.db.

另外(从内存中,如果我错了,请纠正我)用户将需要对包含foo.db的目录的写权限,否则SQLite3将抛出一个不太有用的错误消息.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有