簡體   English   中英

PDO沒有插入正確的數據

[英]PDO not inserting correct data

我有此函數,我將表名和數據傳遞給該函數。

public function quickInsert($table, $data) {
    $keys = array_keys($data);

    $keysStr = '`'.implode('`,`', $keys).'`';
    $valStr = ':'.implode(',:', $keys);
    $Sql = "INSERT INTO `$table` ($keysStr) VALUES ($valStr)";
    dump($Sql);
    $st = $this->connection->prepare($Sql);
    foreach ($data as $k => $v) {
        dump(':'.$k.' - '.$v);
        $st->bindParam(':'.$k, $v);
    }
    //dump($st->execute());
}

轉儲的輸出是

string(114) "INSERT INTO `users` (`email`,`password`,`first_name`,`last_name`) VALUES (:email,:password,:first_name,:last_name)"

string(21) ":email - my@email.com"

string(140) ":password - myHashedPasswordString"

string(17) ":first_name - Tom"

string(17) ":last_name - Hart"

但是,當我執行查詢時,所有字段中的數據都是姓氏(在這種情況下為“ Hart”)。

我怎么了?

$v在循環的每次迭代中都被覆蓋,當它完成並且$st->execute()運行時,它僅包含最后一個值。 嘗試$st->bindValue()代替$st->bindParam()

暫無
暫無

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

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