这里可以是任何在更新后重置表的重置查询 我更新了一个列,然后我想重置它。
id name
1 azeem
2 arfan
更新表格。
update table set name = 'abc' where id = 1;
update table set name = 'xyz' where id = 2;
id name
1 abc
2 xyz
更新:
$sql = mysql_query("select * from table");
while($row = mysql_fetch_array($sql)){
echo $row['name'];
}
之后我想重置它。我怎么能这样做??
答案 0 :(得分:2)
2种方式。
如果您正在运行测试服务器并希望还原所有正在更改的信息,那么您可以在之后生成backup和restore表值update
。
否则,如果您在交易级别谈论,则可以transaction and instead of committing, roll it back。
<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();
/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
/* Recognize mistake and roll back changes */
$dbh->rollBack();
/* Database connection is now back in autocommit mode */
?>
答案 1 :(得分:1)
是的,你可以像sgeddes所说,你需要使用交易。当您使用不是transaction
的{{1}}时,您可以committed
执行查询之前的状态。
试试这个:
rollback
注意您和上面的示例正在使用不推荐使用的//Start the transaction
mysql_query("START TRANSACTION");
//An update query
$yourUpdateQuery = mysql_query("UPDATE YOUR_TBL SET COLUMN = 'COLUMN_VALUE' WHERE COLUMN_ID = ID_VALUE");
//Some SQL select queries (note, that this do not have effect on your data, so this don't need to be in your transaction
$sql = mysql_query("select * from table");
while($row = mysql_fetch_array($sql))
{
echo $row['name'];
}
//Some check here
if (1==1) {
//Ok, let's finish it
mysql_query("COMMIT");
} else {
//Not ok, rollback to the state before the transaction started.
mysql_query("ROLLBACK");
}
函数。您应该使用mysql_*
代替PDO
。
这是一个PDO示例:
mysql_*