PHP MySQL:更新数据
时间:2019-11-20 08:52:38 来源:igfitidea点击:
简介:在本教程中,您将学习如何使用PHP PDO准备好的语句来更新MySQL表中的数据。
我们将使用示例数据库中的任务表进行练习。
如果尚未创建任务表,请按照PHP MySQL创建表教程首先完成它。
下图说明了任务表的结构。
要更新表中的数据,请使用以下步骤:
首先,通过创建一个新的PDO对象连接到MySQL数据库。
其次,构造一个UPDATE语句以更新数据。
如果要将值传递给UPDATE语句,请使用诸如:name之类的命名占位符。第三,使用一个数组调用PDOStatement对象的execute()方法,该数组包含UPDATE语句中指定的命名占位符的相应输入值。
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';
脚本的工作方式。
首先,通过在UpdateDataDemo类的构造函数中创建一个新的PDO实例连接到数据库。
其次,在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';
您可以从任务表中查询数据以验证更新:
SELECT * FROM tasks;
您可以通过以下链接下载代码:
下载PHP MySQL更新源代码
PHP MySQL –更新相关表中的行
有三种方法可以更新相关表中的行:
使用MySQL UPDATE JOIN语句。
在事务内使用多个UPDATE语句。
我们将在PHP MySQL事务教程中研究第二种方法。
在本教程中,您学习了如何使用PHP PDO prepared语句更新MySQL表中的数据。