[英]PHP with PDO using sqlite3 keeps refreshing the page
我刚开始使用sqlite3,我的页面不断刷新,不断向数据库中插入数据。 如果我注释掉insert execute命令,则页面不会刷新。 我认为这可能与我与数据库的连接有关,但我不确定。 提前致谢。 这是完整的代码:
<?php
class create {
function makeDB() {
$pdo = new PDO("sqlite:db/SSDB");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$mainDB = "CREATE TABLE IF NOT EXISTS pass (
'rowID' INTEGER,
'username' CHAR(256) NOT NULL,
'pass' CHAR(256) NOT NULL,
'iv' CHAR(256) NOT NULL
)";
$pdo->query($mainDB);
}
}
class connectDB {
public function connect() {
try {
$dbh = new PDO("sqlite:db/SSDB");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
} catch (PDOException $ex) {
echo $ex->getMessage();
die();
}
}
}
$connDb = new connectDB();
$conn = $connDb->connect();
$createDB = new create();
$createDB->makeDB();
$string = "hi1";
$salt = 'salt';
$encrypted_string = 'test';
$iv = 4;
$sql = "INSERT INTO pass VALUES(1,:encrypted,:salt,:iv)";
$sqlPrepare = $conn->prepare($sql);
$sqlPrepare->execute(array(':encrypted' => $encrypted_string, ':salt' => $salt,:iv'=> $iv));
根据您最初编辑并覆盖但未将其标记为编辑的覆盖的代码/问题 ,任何人都应该看到此内容并询问为什么答案具有相同的滴答/引号修正:
首先,您在表创建代码中对列使用(单引号)。
使用反引号或删除引号。
$mainDB = "CREATE TABLE IF NOT EXISTS `pass` (
`rowID` INTEGER,
`username` CHAR(256) NOT NULL,
`pass` CHAR(256) NOT NULL,
`iv` CHAR(256) NOT NULL
)";
您还缺少$salt,:iv'
=> $salt,':iv'
的报价
添加
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
打开连接后立即查找错误,您的原始代码应该已经抛出该错误。
或者,
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
取决于您使用的那个。
至于“我的页面一直在刷新我” -我看不到您的页面将如何刷新。 您将需要详细说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.