[英]php mysql pdo bindparam data not insert
當我調用此函數時,它沒有顯示錯誤,但未插入數據。 檢查數據庫連接及其確定,連接類型為PDO。
public function insert(){
$table = "category";
$data = array(
'cat_id' => 5,
'cat_name_en' => 'Science',
'cat_info' => 'All about nature',
'cat_tags' => 'Physics, chemistry'
);
$keys = implode(', ', array_keys($data));
$values = ":".implode(", :", array_keys($data));
echo $sql = "INSERT INTO $table($keys) VALUES($values)";
$stmt = $this->db->prepare($sql);
foreach ($data as $key => $value) {
$stmt->bindParam(':'.$key, $value);
}
return $stmt->execute();
}
數據庫連接正常。 因為它適用於SELECT和DELETE查詢,但不適用於INSERT和UPDATE查詢。 我不想替代,但我想知道我的錯誤在哪里。 請幫我。 我正在嘗試解決2天。
Windows 10 64位
WampServer 3.0.8
PHP 7.1
MySQL 5.7
您需要bindValue()
而不是bindParam()
。 將您的foreach循環更改為
foreach ($data as $key => $value) {
$stmt->bindValue(':'.$key, $value);
}
參見文檔:
http://php.net/manual/en/pdostatement.bindvalue.php
看到這里的區別: bindParam和bindValue有什么區別?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.