我有一个包含列数据类型的表,如下所示:
price decimal(6,2) unsigned NOT NULL,
我的验证码是这样的:
if ( (!empty($_POST['price'])) && (is_numeric($_POST['price'])) && (isset($_POST['price'])) > 0 ) {
$price = ($_POST['price']);
} else{
$price = FALSE;
echo '<p> Only accept number and must be higher than zero</p>';
}
我使用$ _POST表单向用户提交值。但是你知道,
1 /当用户键入任何非数字值(如a,b,c等)时,它也会很好地验证。 2 /当用户键入零值时,它也会很好地验证。
然而,问题是,当我测试时没有输入任何值。我的意思是我将值保留为空并点击“提交”#39;按钮,错误消息仍按} else {部分返回,但该值仍然在技术上同时插入到表格列中,值为0.
据我所知,我可以猜测问题可能出在我选择的表格的Mysqli数据类型上,但我不知道如何纠正它。
请帮帮我吗?
答案 0 :(得分:1)
您描述的内容意味着当$ price === false时您无法停止插入 (即问题不是评估;它给了你正确的信息。你在其他地方有一些编程逻辑错误)
答案 1 :(得分:1)
我认为您正在寻找的解决方案是将插入代码移动到第一个if
语句。这样它只会插入值,如果它是数字而不是空。