[英]how to delete data and update data from two different tables at the same time in laravel?
[英]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.