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表中的数据。

