首頁  >  問答  >  主體

使用PHP PDO準備語句進行更新操作

<p>我正在嘗試使用以下查詢更新我的資料庫:</p> <pre class="brush:php;toolbar:false;">$sth = "UPDATE rpacks SET rpacks_location VALUES (:location) WHERE rpacks_id = (:id)"; $q = $conn->prepare($sth); $q->execute(array(':location'=>$location, ':id'=>$id));</pre> <p><b>但我收到此錯誤</b></p> <p><code>致命錯誤:未捕獲異常“PDOException”,訊息為“SQLSTATE[42000]:語法錯誤或存取衝突:1064 您的SQL 語法有錯誤;檢查與您的MySQL 伺服器版本相對應的手冊,了解在</code> 第1 行的'VALUES ('test') WHERE rpacks_id = ('2')' 附近使用的正確語法</p>
P粉668019339P粉668019339444 天前420

全部回覆(2)我來回復

  • P粉315680565

    P粉3156805652023-08-25 17:13:59

    更改為:

    $sth = "更新 rpacks SET rpacks_location = :location WHERE rpacks_id = :id";

    #

    回覆
    0
  • P粉248602298

    P粉2486022982023-08-25 13:33:14

    您的 update 查詢中存在錯誤,因為您使用了 insert 查詢語法。

    以下是正確的查詢:

    $sql = "UPDATE rpacks SET rpacks_location = :location WHERE rpacks_id = :id";
    $stmt = $conn->prepare($sql);
    $stmt->execute([':location'=>$location, ':id'=>$id]);

    參考: http://dev.mysql.com/doc/refman/5.0/ en/update.html

    回覆
    0
  • 取消回覆