PHP MySQL:更新數據

藏色散人
發布: 2023-04-04 11:38:02
原創
4640 人瀏覽過

簡介:在本教學中,您將學習如何使用PHP PDO預處理語句更新MySQL表中的資料。

推薦相關影片教學:MySQL教學

我們將使用範例資料庫中的tasks 表進行練習。如果您尚未建立表,請按照PHP MySQL建立表教學先完成。

下圖說明了該tasks表的結構。

PHP MySQL:更新數據

要更新表中的數據,請使用下列步驟:

首先,透過建立新的PDO物件連接到MySQL資料庫。

其次,建構一個UPDATE語句  來更新資料。如果要將值傳遞給UPDATE語句,請使用命名的佔位符,例如:name。

然後,使用包含語句中指定的命名佔位符的對應輸入值的陣列呼叫物件的execute()  方法。 PDOStatementUPDATE

PHP MySQL:更新資料範例

PHP MySQL - 更新單行

我們來看看下面的UpdateDataDemo課程。

<?php
 
/**
 * PHP MySQL Update data demo
 */
class UpdateDataDemo {
 
    const DB_HOST = &#39;localhost&#39;;
    const DB_NAME = &#39;classicmodels&#39;;
    const DB_USER = &#39;root&#39;;
    const DB_PASSWORD = &#39;&#39;;
 
    /**
     * PDO instance
     * @var PDO
     */
    private $pdo = null;
 
    /**
     * Open the database connection
     */
    public function __construct() {
        // open database connection
        $connStr = sprintf("mysql:host=%s;dbname=%s", self::DB_HOST, self::DB_NAME);
        try {
            $this->pdo = new PDO($connStr, self::DB_USER, self::DB_PASSWORD);
        } catch (PDOException $e) {
            die($e->getMessage());
        }
    }
 
    /**
     * Update an existing task in the tasks table
     * @param string $subject
     * @param string $description
     * @param string $startDate
     * @param string $endDate
     * @return bool return true on success or false on failure
     */
    public function update($id, $subject, $description, $startDate, $endDate) {
        $task = [
            &#39;:taskid&#39; => $id,
            &#39;:subject&#39; => $subject,
            &#39;:description&#39; => $description,
            &#39;:start_date&#39; => $startDate,
            &#39;:end_date&#39; => $endDate];
 
 
        $sql = &#39;UPDATE tasks
                    SET subject      = :subject,
                         start_date  = :start_date,
                         end_date    = :end_date,
                         description = :description
                  WHERE task_id = :taskid&#39;;
 
        $q = $this->pdo->prepare($sql);
 
        return $q->execute($task);
    }
 
    /**
     * close the database connection
     */
    public function __destruct() {
        // close the database connection
        $this->pdo = null;
    }
 
}
 
$obj = new UpdateDataDemo();
 
if ($obj->update(2, &#39;MySQL PHP Update Tutorial&#39;, 
                    &#39;MySQL PHP Update using prepared statement&#39;, 
                    &#39;2013-01-01&#39;, 
                    &#39;2013-01-01&#39;) !== false)
    echo &#39;The task has been updated successfully&#39;;
else
    echo &#39;Error updated the task&#39;;
登入後複製

腳本如何運作。

首先,透過PDO在UpdateDataDemo類別的建構子中建立新實例來連接到資料庫。

其次,在 update()方法中,UPDATE使用命名佔位符號建構  語句。

然後,使用預先準備UPDATE語句為執行語句準備語句並使用陣列參數執行它。

您可以使用以下腳本更新ID為2的行:

$obj = new UpdateDataDemo();
 
if($obj->update(2,
 &#39;MySQL PHP Update Tutorial&#39;,
 &#39;MySQL PHP Update using prepared statement&#39;, 
 &#39;2013-01-01&#39;,
 &#39;2013-01-01&#39;) !== false)
 echo &#39;The task has been updated successfully&#39;;
else 
 echo &#39;Error updated the task&#39;;
登入後複製

您可以從表格中查詢資料tasks以驗證更新:

SELECT * FROM tasks;
登入後複製

在本教學中,您學習如何使用PHP PDO預處理語句更新MySQL表中的資料。

以上是PHP MySQL:更新數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板