簡體   English   中英

PDO一次更新兩個表

[英]PDO update two tables at once

提交表單時,我試圖一次更新兩個表。 http://pastebin.com/ctmaWWN8

除了更新article_cat表之外,我還需要更新article_posts表。 article_posts表中,我需要將cat設置為我在表單中鍵入的內容。

UPDATE article_posts SET cat=:cat WHERE cat=:cat

我猜大概是這樣,但是我不知道如何將它們組合在一起!

這是我的PHP代碼:

if (isset($_POST['submit'])) {

$cat = $_POST['cat'];
$name = $_POST['name'];

$sqlInsert = 'UPDATE article_cat SET cat=:cat, name=:name WHERE id=:id';
$preparedStatement = $db->prepare($sqlInsert);
$preparedStatement->execute(array(':cat' => $cat, ':name' => $name, ':id' => $id));

if (empty($name)) {
// do something
    echo'<div class="alert-box error"><span>error: </span>Categorys name field is Empty!</div>';
    }
    elseif (empty($cat)) {
        echo'<div class="alert-box error"><span>error: </span>Categorys short name field is Empty!</div>';
    }
    else {



    if ($preparedStatement->execute())
{
  echo'<div class="alert-box success"><span>success: </span>Category Updated!</div>';
}
// If execution failed then ->
else
{

 echo'<div class="alert-box error"><span>error: </span>Something went wrong while updating Category :/ ! Please try again.</div>';
}



    }

}

您的代碼應成為此代碼,並確保您替換第二條語句中的占位符值。

if (isset($_POST['submit'])) {

$cat = $_POST['cat'];
$name = $_POST['name'];

// first    
$sqlInsert = 'UPDATE article_cat SET cat=:cat, name=:name WHERE id=:id';
$preparedStatement = $db->prepare($sqlInsert);

// second
$sqlInsert = 'UPDATE article_posts SET cat=:cat WHERE cat = :_cat';

$preparedStatement->execute(array(':cat' => $cat, ':name' => $name, ':id' => $id));
$preparedStatement->closeCursor();

if (empty($name)) {
    echo'<div class="alert-box error"><span>error: </span>Categorys name field is Empty!</div>';
} elseif (empty($cat)) {
        echo'<div class="alert-box error"><span>error: </span>Categorys short name field is Empty!</div>';
} else {
    // second
    $preparedStatement = $db->prepare($sqlInsert);

    // second query statement
    if ($preparedStatement->execute(array(':cat' => 'set-your-cat', ':_cat' => 'where-clause'))) {
        $preparedStatement->closeCursor();

        echo'<div class="alert-box success"><span>success: </span>Category Updated!</div>';
    } else {
        echo'<div class="alert-box error"><span>error: </span>Something went wrong while updating Category :/ ! Please try again.</div>';
    }
  }

}

暫無
暫無

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

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