簡體   English   中英

在一個查詢中插入多個數據庫行

[英]Inserting multiple database rows in one query

我知道這聽起來像是重復的,但我不想在單個查詢中添加多行,我已經可以使用了。 問題是我只需要插入一行即可。

我有兩段代碼執行這些操作。 第一個-在注冊頁面上:

$user = DB::getInstance()->insert('users', array(
    'username' => 'Sam',
    'password' => 'password',
    'salt' => 'salt'

));

然后是在單獨的php類中實際執行查詢的內容:

public function insert($table, $fields = array()) {

    $keys = array_keys($fields);

    $values = '';

    $x = 1;



    foreach($fields as $field) {
        $values .= "?";
        if($x < count($fields)) {
            $values .= ', ';
        }
        $x++;
    }

    $sql = "INSERT INTO {$table} (`" . implode('`, `', $keys) . "`) VALUES ({$values})";
    if(!$this->query($sql, $fields)->error()) {
        return true;
    }
    return false;
}public function query($sql, $params = array()) {
    $this->_error = false;
    if($this->_query = $this->_pdo->prepare($sql)) {
        $x = 1;
        if(count($params)) {
            foreach($params as $param) {
                $this->_query->bindValue($x, $param);
                $x++;
            }
        }

        if($this->_query->execute()) {
            $this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
            $this->_count = $this->_query->rowCount();
        } else {
            $this->_error = true;
        }
    }

    return $this;
}

相當多,但我只想包括所有內容。 當前正在運行,它將記錄輸入到我的數據庫中,唯一的問題是每次都輸入2。

在這里查看我的數據庫:

在此處輸入圖片說明

正如您從ID所看到的,我已經檢查了一段時間了。 我覺得有些小東西正在甩掉它,但我似乎找不到了,需要一雙新鮮的眼睛來幫助。

修復。 我正在Wordpress上運行此代碼,並且已經運行了header.php文件的第一段代碼。 事實證明,該代碼有時會在頁面上運行兩次,而我只需要在“頁面”中包含代碼即可。 (但是,當然,PHP不想在wordpress頁面上運行,所以我需要使用exec php插件),但是無論如何它是固定的。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM