PHP课程
/ 更新数据
更新数据
使用 MySQLi 和 PDO 更新 MySQL 表中的数据
UPDATE
语句用于更新表中的现有记录:
UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value
注意:UPDATE
语法中的 WHERE 子句:WHERE 子句指定应更新哪条或哪些记录。若省略 WHERE
子句,所有记录都将更新!
请参阅:SQL 教程。
让我们看看 "MyGuests" 表:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | john@example.com | 2014-10-22 14:26:15 |
2 | Mary | Moe | mary@example.com | 2014-10-23 10:22:30 |
以下示例更新了 "MyGuests" 表中 id=2
的记录:
实例(MySQLi 面向对象)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败:" . $conn->connect_error); } $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; if ($conn->query($sql) === TRUE) { echo "记录更新成功"; } else { echo "更新记录时出错:" . $conn->error; } $conn->close(); ?>
实例(MySQLi 过程化)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检查连接 if (!$conn) { die("连接失败:" . mysqli_connect_error()); } $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; if (mysqli_query($conn, $sql)) { echo "记录更新成功"; } else { echo "更新记录时出错:" . mysqli_error($conn); } mysqli_close($conn); ?>
实例(PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 将 PDO 错误模式设置为异常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; // 准备语句 $stmt = $conn->prepare($sql); // 执行查询 $stmt->execute(); // 输出一条消息,表示 UPDATE 成功 echo $stmt->rowCount() . " 条记录已成功更新"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>
记录更新后,表将如下所示:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | john@example.com | 2014-10-22 14:26:15 |
2 | Mary | Doe | mary@example.com | 2014-10-23 10:22:30 |