繁体   English   中英

使用sqlite3的带有PDO的PHP不断刷新页面

[英]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); 打开连接后立即查找错误,您的原始代码应该已经抛出该错误。

\n

或者, $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 取决于您使用的那个。

至于“我的页面一直在刷新我” -我看不到您的页面将如何刷新。 您将需要详细说明。

  • 您发布的问题中没有代码支持页面刷新或重定向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM