簡體   English   中英

如何在MySQL中同時刪除和更新數據

[英]How to delete and update data in MySQL at the same time

基本上,我想做的是刪除ID為6的客戶端,並且有50個客戶端,然后將ID為50的客戶端更新為6。

這是我的代碼,在PHP中,但至少不會同時執行2 mysql_query -s,至少我認為這是問題所在。 否則,SQL語法可以正常工作。

public function delete () {
    $last=$this->numrow; //contains last ID works fine

    if (isset ($_GET['x'])) {
        mysql_query('DELETE FROM proba WHERE ID ='.$_GET['x']);
        mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].'WHERE ID='.(int)$last);
    }
}

$_GET['x']包含單擊它的ID。 但是只有第一個mysql_query被執行,我該如何做,所以第二個也要執行?

另一個問題是是否可以通過$_POST獲得<a href="munka/index.php?x=5" > [-] </a> x = 5?

使用mysql的replace查詢可能會為您省去很多麻煩:有關詳細信息,請參見http://dev.mysql.com/doc/refman/5.6/en/replace.html

最有可能您在第一個查詢中遇到php錯誤。 檢查php錯誤日志。

對於第二個問題,例如, $_GET用於從URL獲取參數

munka/index.php?x=5

$_POST用於獲取在http帖子(通常在表單提交)上發布的參數。

只需將更新查詢更改為where子句前的空格

 mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].' WHERE ID='.(int)$last);

最好通過使用InnoDB Mysql DB Engine來使用事務支持,因此刪除和更新將在COMMIT一起執行而不會遺漏,並且萬一出問題,您的刪除更改將得到ROLLBACK

 if (isset($_GET['x'])) {
        mysql_query('DELETE FROM proba WHERE ID =' . $_GET['x']);
        mysql_query('ALTER TABLE `proba`  DROP `ID`;');
        mysql_query('ALTER TABLE  `proba` ADD  `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST');
    }

嘗試在Phpmyadmin中刪除5號記錄,然后刪除id列並重新創建id列。 是工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM