php
  • mysql
  • 2017-09-23 227 views 0 likes 
    0

    我爲我的登錄和註冊系統編寫了一些代碼。 在我的登記制度,我已經包含了這個代碼:UPDATE語句與WHERE一起工作嗎?

    <?php 
        $sql3="UPDATE users SET 
          firstname='$firstname', lastname='$lastname', 
          password='$password',bio='$bio', 
          dob='$dob',gender='$gender' 
    ?> 
    

    當然不過,這只是將更新用戶表中的所有行。 但當我補充一下:

    <?php WHERE username=$username ?> 
    

    我會得到一個錯誤:你在你的SQL語法錯誤;請檢查與您的MariaDB服務器版本相對應的手冊,以便在第1行的''附近使用正確的語法。

    讓我明確一點,這不是一個錯誤問題,我知道問題是什麼。我只想知道如何解決我的代碼,以便它不會更新整個表格而不是隻更新一行用戶行。先謝謝你。

    +0

    只要把'WHERE'聲明在第一次查詢的末尾, –

    +1

    請添加的代碼塊是有意義的部分。這目前不.....有任何意義,是 – RiggsFolly

    +1

    嘗試添加引號作爲其文本值,如'WHERE用戶名='$ username'' – RiggsFolly

    回答

    -1

    是的,他們工作。 WHERE子句實際上會幫助您更新特定的行,否則它將更新表中的所有行。

    UPDATE TABLE_NAME SET COLUMN_NAME=<VALUE> WHERE COLUMN_NAME=<VALUE>; 
    

    因此,把標識符列像usernameWHERE子句將避免更新所有行。

    喜歡的東西用事先準備好的聲明

    UPDATE users 
    SET firstname=?, lastname=?,password=?,bio=?, dob=?, gender=? 
    where username=? 
    
    +0

    不是真正的問題回答 – RiggsFolly

    +0

    @RiggsFolly我希望,現在是? :D – unnamed

    +0

    不,它仍然包含一個明顯的錯誤 – RiggsFolly

    相關問題