php
  • mysql
  • 2014-03-19 80 views 0 likes 
    0

    我試圖做一個更新而不替換空字段,例如,如果我有字段編號1,它是空的在數據庫中沒有任何反應,但如果字段編號2有一些我想要的內容它將被更新。發生的事情是,當我這樣做時,空字段會進入數據庫,並將字段的內容替換爲空值。更新mysql,但不替換空字段

    我需要一個如何做到這一點的例子。

    PD:我正在使用PHP OOP。

    這是我的查詢:

    $conio = "UPDATE affiliates SET nickname = '$nickname', fullname = '$fullname' , email = '$email', skype = '$skype', country = '$country', address = '$address', city = '$city', zip = '$zip', bankname = '$bankname', bankaccount = '$bankaccount', beneficiary = '$beneficiary', username = '$username', password = '$password', whene = '$whene' WHERE id = '$users'"; 
         mysqli_query($this->link, $conio) or die (mysqli_error($this->link)); 
    
    +0

    當我這樣做時,我只是查詢以前存儲在行中的數據。然後根據新數據檢查每個字段。如果它改變了更新,否則用先前的數據更新該行保持相同。我不確定是否僅使用NULL進行更新可避免更新字段。 – TomFirth

    回答

    0

    例子:如果你想更新輸入其中的值不爲空。

    <?php 
    ... 
    $sql = "UPDATE affiliates SET "; 
    $sql_where = "WHERE id = '$users'"; 
    $sql_set = ""; 
    
    $firstName = $_POST['firstName']; 
    if(!empty($firstName)) 
        $sql_set .= "firstName = '$firstName',"; 
    
    $lastName = $_POST['lastName']; 
    if(!empty($lastName)) 
        $sql_set .= "lastName = '$lastName',"; 
    

    以及所有其他輸入... 同樣的事情...

    mysql_query($sql.$sql_set.$sql_where); 
    

    當然也有寫這個代碼(例如更好的辦法:在$的元素使用循環_POST),但這是概念,...

    +0

    我愛你!哈哈,非常感謝你! – McZiel

    相關問題