我需要检查数据库中是否存在 ID,以便将其删除,如果不存在则显示消息警告。将“x”与“xtrue”进行比较时出现问题。
$x = $_REQUEST['X'];
$y = $_REQUEST['Y'];
if($x != "") {
$xtrue = " SELECT x
FROM ".$y."
WHERE x=".$x;
if($x == $xtrue) {
$query="DELETE FROM ".$y." WHERE id=".$x;
$recordset = mysql_query($query,$conn);
echo "-> ".$x." from ".$y." deleted.";
}
else{echo "There is no ".$x." from ".$y.".";}
}
最佳答案
您确实不应该使用 mysql_*
(自 PHP5.5.0 起已弃用),但如果您必须使用,下面是如何执行此操作的示例。
您不需要检查记录是否存在,只需尝试删除它并使用mysql_affected_rows
来确定是否有任何记录被删除。
$x = $_REQUEST['x'];
$y = $_REQUEST['y'];
// Basic validation
// $x must be integer and $y may contains only letters and underscore
if (preg_match('/^[0-9]+$/', $x) and preg_match('/^[_a-z]+$/', $y)) {
// If record is not exists it will not be removed
mysql_query("DELETE FROM $y WHERE id = $x");
if (mysql_affected_rows() == 1) {
echo 'Record was deleted';
} else {
echo 'Record not exists.';
}
}
关于php数据库检查id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19206512/