2013-02-21 75 views
1

基本上什麼,我試圖做的是,當我刪除客戶端允許的ID說6,我有50個客戶,然後我想更新與客戶端ID爲50到6.如何刪除,並在同一時間更新MySQL數據

這是我的代碼,在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得到執行我怎麼做,所以第二個得到執行呢?

而另一個問題是是否有可能得到<a href="munka/index.php?x=5" > [-] </a>在x = 5用$_POST

+7

你確定要到?你確定你真的必須這樣嗎?在第一眼看來,改變現有條目的ID似乎不是一個好主意。試想一下,你有更多的表格使用客戶端的ID來引用一些數據。你將不得不更新那裏的所有ID。你真的想做這樣的事嗎? – oktopus 2013-02-21 11:37:04

+0

你爲什麼要這樣做?如果ID是主鍵?它是自動增量嗎? – 2013-02-21 11:37:50

+6

耶穌....你的代碼我們容易受到SQL注入和你使用過時的API ...使用[PDO或IMO只有PDO檢查此](http://stackoverflow.com/questions/12859942/why-shouldnt-我使用mysql的功能在PHP/14110189#14110189),並檢查此(瞭解SQL注入)[http://stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient-對防止-SQL注入/ 12202218#12202218) – 2013-02-21 11:39:51

回答

0

很可能你在第一次查詢時遇到了php錯誤。檢查php錯誤日誌。

關於第二個問題$_GET用於帶參數從URL例如

munka/index.php?x=5

$_POST用於獲取張貼在HTTP POST參數(通常在表單提交)。

+1

[有關獲取和後期檢查的更多信息](http://www.brightmeup.info/article.php?a_id=6) – 2013-02-21 11:48:21

0

只是改變了空間更新查詢的WHERE子句前

mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].' WHERE ID='.(int)$last); 
-1
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列。 這是工作。

0

更好地使用InnoDB的MySQL數據庫引擎使用事務的支持,所以無論刪除和更新執行起來wuth承諾,而小姐,萬一有什麼差錯你刪除更改獲取ROLLBACK

相關問題