繁体   English   中英

为什么在此数据库不更新?

[英]Why is the database not updating in this?

我有这个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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM