[英]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.