2013-02-21 66 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

相关问题