基本上我要做的是当我删除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
被执行,我该怎么做,所以第二个也被执行了?
另一个问题是,<a href="munka/index.php?x=5" > [-] </a>
可以获得$_POST
x = 5吗?
答案 0 :(得分:0)
使用mysql的替换查询可以省去很多麻烦: 见http://dev.mysql.com/doc/refman/5.6/en/replace.html 详情。
答案 1 :(得分:0)
很可能你在第一个查询时遇到了php错误。检查php错误日志。
对于第二个问题$_GET
用于从URL中获取参数,例如
munka/index.php?x=5
$_POST
用于获取http帖子上发布的参数(通常在表单提交上)。
答案 2 :(得分:0)
只需在where子句
之前用空格更改更新查询 mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].' WHERE ID='.(int)$last);
答案 3 :(得分:0)
最好使用InnoDB Mysql数据库引擎来使用事务支持,因此删除和更新一起执行wuth COMMIT而不会错过,如果出现任何问题,您的删除更改将获得ROLLBACK
答案 4 :(得分:-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列。 这是工作。