如何使用mysql PDO语句在php中使用条件检查?

如何使用mysql PDO语句在php中使用条件检查?,php,mysql,if-statement,pdo,Php,Mysql,If Statement,Pdo,我试图简化我的代码,它有多个检查。。下面是我的代码- $query2 = "SELECT * FROM sample.temp"; $rslt = $dbo->query($query2); if($rslt->rowCount() > 0) { foreach($rslt as $item) { $id = $item['entry_id']; $Qty = $item['Qty']; $group_ID = $

我试图简化我的代码,它有多个检查。。下面是我的代码-

$query2 = "SELECT * FROM sample.temp";
$rslt = $dbo->query($query2);
if($rslt->rowCount() > 0)
{
    foreach($rslt as $item)
    {
        $id = $item['entry_id'];
        $Qty = $item['Qty'];
        $group_ID = $item['group_ID'];
        $component = $item['component'];
        $vendor_ID = $item['vendor_ID'];

        $stmt = $dbo->prepare("SELECT Qty FROM sample.temp WHERE vendor_ID=$vendor_ID AND component='$component' LIMIT 1");
        if ($stmt->execute(array($_GET['Qty'])))
            {
            while ($row = $stmt->fetch(PDO::FETCH_OBJ))
                {
                $Q = $row->Qty; 
                }
            }
        $query4 = "UPDATE sample.stock SET Qty=(Qty+$Q) WHERE stock_ID=$vendor_ID AND component='$component'";//updating single existing entries
            if ($dbo->query($query4))
            {echo "Production updated !";}
            else {echo "Production not updated!";}

        $stm = $dbo->prepare("SELECT Qty FROM sample.temp WHERE vendor_ID=$vendor_ID AND component!='$component' LIMIT 1");
        if ($stm->execute(array($_GET['Qty'])))
            {
            while ($row = $stm->fetch(PDO::FETCH_OBJ))
                {
                $Qt = $row->Qty; 
                }
        $query5 = "INSERT INTO sample.stock (stock_ID, component, Qty) VALUES ($vendor_ID, '$component', $Qt)";//inserting new entry
            if ($dbo->query($query5))
            {echo "Production updated !";}
            else {echo "Production not updated!";}
    $st = $dbo->prepare("SELECT Qty FROM sample.temp WHERE vendor_ID!=$vendor_ID AND component='$component' LIMIT 1");
        if ($st->execute(array($_GET['Qty'])))
            {
            while ($row = $st->fetch(PDO::FETCH_OBJ))
                {
                $Qtt = $row->Qty; 
                }
        $query6 = "INSERT INTO sample.stock (stock_ID, component, Qty) VALUES ($vendor_ID, '$component', $Qtt)";//inserting new entry
            if ($dbo->query($query6))
            {echo "Production updated !";}
            else {echo "Production not updated!";}
    }       
}
是否有任何方法可以减少此代码或更改检查条件的方式? 如果我能在所有三个select语句中使用If语句,那就太好了

首先,我选择了一个临时表,在3次检查的基础上将数据传输到库存表-

  • 若库存表中的现有值和临时表中的库存ID和组件相同,则更新库存表中的现有值

  • 如果库存表中没有与该库存ID对应的组件,则在库存表中插入新条目

  • 在库存表中插入新条目,前提是该条目具有组件,但与库存表中的任何库存ID均不对应


  • 注意-临时表中的供应商ID与库存表中的库存ID相同。

    您能解释一下您的意图吗:)?hey@Matt首先,我选择了一个临时表,根据3个检查-1,从中将数据传输到库存表中。如果库存表中的现有值与临时表2中的库存ID和组件相同,则更新库存表中的现有值。如果库存表中没有与该库存ID 3对应的组件,则在库存表中插入新条目。在库存表中插入新条目,如果它有组件,但不对应于库存表中的任何库存ID注意-临时表中的供应商ID与库存表中的库存ID相同。您能解释一下您尝试执行的操作吗:)?hey@Matt首先,我选择一个临时表,从中将数据传输到3个检查的基础-1。如果库存表中的现有值与临时表2中的库存ID和组件相同,则更新库存表中的现有值。如果库存表中没有与该库存ID 3对应的组件,则在库存表中插入新条目。在库存表中插入新条目(如果该条目具有组件但不对应于库存表中的任何库存ID)。注意:临时表中的供应商ID与库存表中的库存ID相同。