mysql,php插入零问题

时间:2016-02-02 03:24:40

标签: php mysql

我是非常新的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();
            }
        }
}
}

2 个答案:

答案 0 :(得分:2)

请看这里的陈述,

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

来自documentation of empty()

  

以下内容被认为是空的:

     

“”(空字符串)
  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

替换