mysql, php 插入零问题


mysql, php Insert Zero Problems

我对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();
            }
        }
}
}

看看这句话,

if (!empty($logDate) && !empty($shiftID) && !empty($deployed)){ ...

empty()的文档中,

以下内容被视为空:

" (空字符串)
0(0 作为整数)
0.0 (0 作为浮点数)
"0"(0 作为字符串)


array() (一个空数组)
$var;(已声明但没有值的变量)

因此,与其使用 empty(),不如使用 isset() 函数,如下所示:

if (isset($logDate) && isset($shiftID) && isset($deployed)){ ...

对 empty() 的调用在 0 上返回 FALSE,因此删除对整数的检查,或替换为>== 0