我剛剛從mysqli的事先準備好的聲明去PDO準備語句,因爲它會使事情更容易爲我理應PDO變參數 - 如何更新數據庫行
我想只更新等的Facebook如果Facebook的部分是不是空的,但目前它會更新表單上的一切提交也空變量,我該如何解決?
PHP
if (isset($_POST['submit'])) {
$facebook = $_POST['facebook'];
$twitter = $_POST['twitter'];
$youtube = $_POST['youtube'];
$stmt = $dbCon->prepare(" UPDATE login_media "
. " SET login_media_youtube = :youtube, "
. " login_media_facebook = :facebook, "
. " login_media_youtube = :youtube, "
. " login_media_twitter = :twitter ");
$stmt->bindParam(":facebook", $facebook);
$stmt->bindParam(":twitter", $twitter);
$stmt->bindParam(":youtube", $youtube);
$stmt->execute();
}
?>
HTML
<form class="multiForm" action="" method="POST">
<input type="text" name="youtube" placeholder="Youtube">
<input type="text" name="facebook" placeholder="Facebook">
<input type="text" name="twitter" placeholder="Twitter">
<input type="submit" name="submit">
</form>
我不覺得自己像做if語句和更新/查詢每一個,如果滿足條件的很多,我認爲這是可能的,使其動態,但如何?
你需要一個WHERE子句添加到您的查詢來限制更新單行在那張表中,但是你不會告訴我們任何能夠表明這些行的索引是什麼的東西 – RiggsFolly
我認爲你誤解了,它只需要更新等Facebook如果Facebook不是空的,但目前它更新一切在行:)它沒有關係哪一行/它在哪裏更新:)這只是爲了測試目的。因此,如果我在Facebook輸入字段中輸入Facebook.com/blabla,它應該只更新數據庫中的facebook,而不是twitter/youtube,我希望你能理解 – Javaish
然後,如果'login_media_facebook IS NOT NULL'或者'login_media_facebook!=''',具體取決於該列的默認值是多少 – RiggsFolly