使用sql中的查询重置表

时间:2014-09-16 04:16:06

标签: php mysql sql

这里可以是任何在更新后重置表的重置查询 我更新了一个列,然后我想重置它。

 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'];
   }

之后我想重置它。我怎么能这样做??

2 个答案:

答案 0 :(得分:2)

2种方式。

如果您正在运行测试服务器并希望还原所有正在更改的信息,那么您可以在之后生成backuprestore表值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_*