簡介:在本教學中,您將學習如何使用PHP PDO預處理語句更新MySQL表中的資料。
推薦相關影片教學:MySQL教學!
我們將使用範例資料庫中的tasks 表進行練習。如果您尚未建立表,請按照PHP MySQL建立表教學先完成。
下圖說明了該tasks表的結構。
要更新表中的數據,請使用下列步驟:
首先,透過建立新的PDO物件連接到MySQL資料庫。
其次,建構一個UPDATE語句 來更新資料。如果要將值傳遞給UPDATE語句,請使用命名的佔位符,例如:name。
然後,使用包含語句中指定的命名佔位符的對應輸入值的陣列呼叫物件的execute() 方法。 PDOStatementUPDATE
PHP MySQL:更新資料範例
PHP MySQL - 更新單行
我們來看看下面的UpdateDataDemo課程。
<?php /** * PHP MySQL Update data demo */ class UpdateDataDemo { const DB_HOST = 'localhost'; const DB_NAME = 'classicmodels'; const DB_USER = 'root'; const DB_PASSWORD = ''; /** * 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 = [ ':taskid' => $id, ':subject' => $subject, ':description' => $description, ':start_date' => $startDate, ':end_date' => $endDate]; $sql = 'UPDATE tasks SET subject = :subject, start_date = :start_date, end_date = :end_date, description = :description WHERE task_id = :taskid'; $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, 'MySQL PHP Update Tutorial', 'MySQL PHP Update using prepared statement', '2013-01-01', '2013-01-01') !== false) echo 'The task has been updated successfully'; else echo 'Error updated the task';
腳本如何運作。
首先,透過PDO在UpdateDataDemo類別的建構子中建立新實例來連接到資料庫。
其次,在 update()方法中,UPDATE使用命名佔位符號建構 語句。
然後,使用預先準備UPDATE語句為執行語句準備語句並使用陣列參數執行它。
您可以使用以下腳本更新ID為2的行:
$obj = new UpdateDataDemo(); if($obj->update(2, 'MySQL PHP Update Tutorial', 'MySQL PHP Update using prepared statement', '2013-01-01', '2013-01-01') !== false) echo 'The task has been updated successfully'; else echo 'Error updated the task';
您可以從表格中查詢資料tasks以驗證更新:
SELECT * FROM tasks;
在本教學中,您學習如何使用PHP PDO預處理語句更新MySQL表中的資料。
以上是PHP MySQL:更新數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!