簡體   English   中英

PHP PDO如何更新信息

[英]PHP PDO how to update information

我是PHP的新手,我正在使用PHP MVC和PDO。

我正在嘗試更新給定用戶ID的“個人資料”表的名字和姓氏。

這是我的模特

public function update(){
    $stmt = $this->_connection->prepare("UPDATE Profile SET first_name = ?, last_name = ?, WHERE user_id = :user_id");
    $stmt->bindParam(':user_id', $_SESSION['user_id']);
    $stmt->execute();
    return $stmt->rowCount();
}

這是我的控制器

        $prof = $this->model('Profile');
        $myProfile = $prof->getProfile($_SESSION['username']);

        if(isset($_POST['action'])){
                 $myProfile ->first_name = $_POST['First_name'];
                 $myProfile ->last_name = $_POST['Last_name'];
                 $myProfile ->update();

        }

它不起作用,我收到以下錯誤

PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters (points to excute in model)

您的update()函數應如下所示:

public function update() {

    $stmt = $this->_connection->prepare('UPDATE profile SET first_name = :first_name, last_name = :last_name WHERE user_id = :user_id');
    $stmt->bindParam(':user_id', $_SESSION['user_id']);
    $stmt->bindParam(':first_name', $_POST['First_name']);
    $stmt->bindParam(':last_name ', $_POST['Last_name']);
    $stmt->execute();

    return $stmt->rowCount();
}

也:

  • 你的SQL查詢中有一個拼寫錯誤(例如,WHERE之前)
  • 避免在變量名稱中混合使用大寫/小寫
  • 在更新數據庫之前,請仔細檢查輸入(非空,並匹配預期的格式)

暫無
暫無

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

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