我有这个PHP:
<?php
$db= new PDO("mysql:host=example;dbname=example", "root", "example");
$query= $db->prepare("SELECT yarnName, price, sale_price, cost, contents, onSale, yarnLink, yarnImage, activeFlag FROM yarn WHERE yarnId = :parameter");
$query->bindParam(':parameter', $id, PDO::PARAM_STR);
$query->execute();
$id=$_POST['id'];
$name=$_POST['name'];
$price=$_POST['price'];
$salePrice=$_POST['salePrice'];
$cost=$_POST['cost'];
$contents=$_POST['contents'];
$onSale=$_POST['onSale'];
$yarnLink=$_POST['yarnLink'];
$image=$_POST['image'];
$active=$_POST['active'];
$attrUpdates= array($name,$price,$salePrice,$cost,$contents,$onSale,$yarnLink,$image,$active);
$attrOriginal=$query->fetch();
if(count($attrUpdates)==count($attrOriginal)){
for($i=0; $i<count($attrUpdates); $i++){
if($attrUpdate[$i]!=$attrOriginal[$i]&&$attrUpdate[$i]!=null){
switch($i){
case 0:
$update=$db->prepare("UPDATE yarn SET yarnName = :parameter1 WHERE yarnId = :parameter2");
case 1:
$update=$db->prepare("UPDATE yarn SET price = :parameter1 WHERE yarnId = :parameter2");
case 2:
$update=$db->prepare("UPDATE yarn SET sale_price = :parameter1 WHERE yarnId = :parameter2");
case 3:
$update=$db->prepare("UPDATE yarn SET cost = :parameter1 WHERE yarnId = :parameter2");
case 4:
$update=$db->prepare("UPDATE yarn SET contents = :parameter1 WHERE yarnId = :parameter2");
case 5:
$update=$db->prepare("UPDATE yarn SET onSale = :parameter1 WHERE yarnId = :parameter2");
case 6:
$update=$db->prepare("UPDATE yarn SET yarnLink = :parameter1 WHERE yarnId = :parameter2");
case 7:
$update=$db->prepare("UPDATE yarn SET yarnImage = :parameter1 WHERE yarnId = :parameter2");
case 8:
$update=$db->prepare("UPDATE yarn SET activeFlag = :parameter1 WHERE yarnId = :parameter2");
}
$query->bindParam(':parameter1', $attrUpdate[$i], PDO::PARAM_STR);
$query->bindParam(':parameter2', $id, PDO::PARAM_STR);
$query->execute();
}
}
}
?>
并且它没有更新数据库。我不确定为什么会这样,但如果有人告诉我出了什么问题,我将不胜感激。我不认为这篇文章出了问题,但也有可能。
最佳答案
$query 更改为 $update
$update->bindParam(':parameter1', $attrUpdate[$i], PDO::PARAM_STR);
$update->bindParam(':parameter2', $id, PDO::PARAM_STR);
$update->execute();
关于php - 为什么数据库没有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371982/