PHP - 在准备好的查询中插入不起作用

时间:2017-04-05 16:37:01

标签: php sql sqlite sql-insert

我很难尝试使用php7.0进行简单的插入我的sqlite3数据库

此代码正确打印结果,因此SELECT的工作

$dbconn = new PDO('sqlite:/home/rooter/Desktop/XSS/db/ex1');
$stmtinit = $dbconn->prepare("select count() from tokens;");
$stmtinit->execute();

$rows = $stmtinit->fetch(PDO::FETCH_BOTH);
$tks = $rows[0];
print "tokens_size:".$tks;

但是下面的代码没有做任何事情,也没有抛出任何错误/警告/通知。表标记的大小不变。

$dbconn = new PDO('sqlite:/home/rooter/Desktop/XSS/db/ex1');
$stmt = $dbconn->prepare("insert into tokens(user, token) values ('plaintxt','plaintxt')");
$stmt->execute(); 

如果我尝试在db中手动插入,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

根据Fred -ii-的建议,我在

上启用了错误模式
$dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

导致消息:"尝试编写只读数据库" 。发生这种情况是因为当我创建数据库时,我是root。