HTML按钮通过post方法调用php代码,但SQL查询不';行不通
我试图构建一个html表,每行上都有一个“remove”按钮,一旦按下该按钮,就会调用一个以项目ID为参数的sql查询,从而从我的数据库的“basket”表中删除一个项目。 至于现在,当按下按钮时,什么也没有发生。我认为问题应该出在我传递的参数上,因为当我更改查询以在按下按钮时删除特定ID时,它确实工作得很好 这是我代码的一部分:(如果您需要整个文件,我将提供其余的代码) html部分:HTML按钮通过post方法调用php代码,但SQL查询不';行不通,php,html,sql,Php,Html,Sql,我试图构建一个html表,每行上都有一个“remove”按钮,一旦按下该按钮,就会调用一个以项目ID为参数的sql查询,从而从我的数据库的“basket”表中删除一个项目。 至于现在,当按下按钮时,什么也没有发生。我认为问题应该出在我传递的参数上,因为当我更改查询以在按下按钮时删除特定ID时,它确实工作得很好 这是我代码的一部分:(如果您需要整个文件,我将提供其余的代码) html部分: <td> <form name="myForm" method="po
<td>
<form name="myForm" method="post" action="<?php $_SERVER['PHP_SELF'];?>" >
<input type="submit" class="css3button" value="remove" / > </td>
<input type="hidden" name="Id" id="Id" value="<?php echo $Id; ?>" />
</form>
</td>
在
sprintf
的参数中加上“结束字符串”我在这里看到一些问题:
$\u POST['myForm']
永远不会出现,只有$\u POST['Id']
会出现$Id
,否则该值将为空,因此请改用$\u POST['Id']
,因此再次需要验证$Id
是否保存了一些数据,并且不是空的/未定义的你的代码不会被认为是不安全的,但你真的应该抛弃
mysql.*
库,转而使用PDO或MySQLi,并在查询中需要用户输入的地方使用预先准备好的语句。可能是拼写错误,但sql字符串没有关闭。请注意:不要使用mysql.
函数,因为它们已被弃用。请使用PDO或Mys问题在于$\u POST['Id']的东西。
if(isset($_POST['myForm'])){
$removal = sprintf("DELETE FROM Basket WHERE Id='%s'" ,mysql_real_escape_string($Id));
$remove_result = mysql_query($removal);
if (!$remove_result ) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
}
if(isset($_POST['Id'])){
$removal = sprintf("DELETE FROM Basket WHERE Id='%s'" ,mysql_real_escape_string($_POST['Id']));
$remove_result = mysql_query($removal);
if (!$remove_result ) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
}