我是非常新的php并且编写了我认为是一个简单的php页面来将数据插入到mysql表中。该表仅包含日期和两个整数。问题在于整数。代码适用于数字1 - 100,但当我输入零(0)时,它不会插入数据。我确信有一个简单的解释,但我找不到它。任何帮助表示赞赏。
<?php
error_reporting(0);
require 'db/connect.php';
require 'db/security.php';
if (!empty($_POST)) {
if (isset($_POST['logDate'], $_POST['shiftID'], $_POST['deployed'])) {
$date = trim($_POST['logDate']);
$shiftID = trim($_POST['shiftID']);
$deployed = trim($_POST['deployed']);
$logDate = date('Y-m-d', strtotime($date));
if (!empty($logDate) && !empty($shiftID) && !empty($deployed)) {
$insert = $db->prepare("INSERT INTO info
(logDate, shiftID, deployed)
VALUES (?,?,?)");
$insert->bind_param('sii', $logDate, $shiftID, $deployed);
if ($insert->execute()) {
header ('location: test1.php');
die();
}
}
}
}
答案 0 :(得分:2)
请看这里的陈述,
if (!empty($logDate) && !empty($shiftID) && !empty($deployed)){ ...
以下内容被认为是空的:
“”(空字符串)
0(0为整数)
0.0(0作为浮点数)
“0”(0作为字符串)
NULL
错误的 array()(一个空数组)
是$ var; (声明的变量,但没有值)
因此,使用empty()
函数代替isset()
,如下所示:
if (isset($logDate) && isset($shiftID) && isset($deployed)){ ...
答案 1 :(得分:0)
对empty()的调用在0上返回FALSE,因此删除对整数的检查,或者用&gt; == 0
替换