Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php表单输入的mysql INT和DATE的空值_Php_Html_Mysql_Forms - Fatal编程技术网

通过php表单输入的mysql INT和DATE的空值

通过php表单输入的mysql INT和DATE的空值,php,html,mysql,forms,Php,Html,Mysql,Forms,我正在制作这样的表格: <tr align="center"><!-- list A doc --> <td><b>Documents Collected:</b></td> <td> <select name="listA_id"> <option value=""&g

我正在制作这样的表格:

     <tr align="center"><!-- list A doc -->
            <td><b>Documents Collected:</b></td>
            <td>  
                <select name="listA_id">
                <option value="">List A documents</option>
                <?php
                include("connect-db.php");
                $list = mysql_query("SELECT doc_no, doc_name FROM hr_doc_master WHERE doc_id =1 ");

            while($row_list=mysql_fetch_array($list))
            {
                echo  "<option value=\"{$row_list[0]}\">{$row_list[1]}</option>";
            }
            mysql_close($connection);
    ?>
    </select></td></tr>
   <tr align="center"><td><b>Document No.</b></td>
    <td><input type="text" name="listA_doc_no"></td></tr>
            <tr align="center"><td>Expiry Date</td><td><input type="date" name="listA_doc_expiry"></td></tr>

           <tr align="center"><td>List B</td></tr>   
           <!----- list B ------->
            <tr align="center">
            <td><b>Documents Collected:</b></td>
            <td>  
                <select name="listB_id">
                <option value="">List B documents</option>  
                <?php 
                 include("connect-db.php");
                $list = mysql_query("SELECT doc_no, doc_name FROM hr_doc_master WHERE doc_id = 2");

            while($row_list=mysql_fetch_array($list))
            {
                echo  "<option value=\"{$row_list[0]}\">{$row_list[1]}</option>";
            }
            mysql_close($connection);
    ?>

                    </select>
                    </td>
            </tr>
            <tr><td>Document No.</td><td><input type="text" name="listB_doc_no" size =30 ></td></tr>
            <tr align="center"><td><b>Expiry Date</b></td><td><input type="date" name="listB_doc_expiry" size =30 ></td></tr>
           <tr><td colspan=2><hr/></td></tr>
           <tr align="center"><td>List C</td></tr>     
           <tr align="center">
            <td>
                    <b>Documents Collected:</b>
                </td>
                    <td>  
                    <select name="listC_id">
                        <option value="">List C documents</option>
                        <?php
        include("connect-db.php");
                            $list = mysql_query("SELECT doc_no, doc_name FROM hr_doc_master WHERE doc_id =3 ");

            while($row_list=mysql_fetch_array($list))
            {
                echo  "<option value=\"{$row_list[0]}\">{$row_list[1]}</option>";
            }
            mysql_close($connection); `?>`


                    </select>
                </td>
        </tr>
        <tr align="center"><td>Document No.</td><td><input type="text" name="listC_doc_no" size =30 ></td></tr>
        <tr align="center"><td>Expiry Date</td><td><input type="date" name="listC_doc_expiry" size =30 ></td></tr>
if($_POST['listA_doc_expiry'] ==""){$listA_doc_expiry = 'NULL' ; 
 $listA_id = 'NULL'; }
else{$listA_doc_expiry = $_POST['listA_doc_expiry'];
echo $listA_doc_expiry; }    
以及查询:

$result = mysql_query("INSERT INTO hr_information(consultant_id, listA_doc_no, listB_doc_no, listC_doc_no, listA_doc_expiry, listB_doc_expiry,
 listC_doc_expiry, listA_id, listB_id, listC_id) VALUES('$consultant_id','$listA_doc_no','$listB_doc_no','$listC_doc_no','$listA_doc_expiry','$listB_doc_expiry','$listC_doc_expiry','$listA_id','$listB_id','$listC_id');") or die(mysql_error());
它给出了以下错误
不正确的日期值:第1行“listB_doc_expiry”列的“NULL”
如何在数据库中输入NULL日期值和INT。当我直接在查询中手动输入NULL(不带“”)时,它会起作用。
另外,在创建数据库时,我已经将两者声明为NULL。

您正在尝试插入字符串

'NULL'
,而不是
NULL
部分中的引号引起了
NULL
值的问题

更重要的是,您的代码极易受到SQL注入攻击。与其构造一个字符串来表示该语句,并自己将值放入该字符串中,不如使用一个准备好的语句,然后将值绑定到引入的字段。关于如何做到这一点,有很多例子


一个很好的好处是,这也将消除您的
'NULL'
问题

NULL不应包含在
中,因为它是一个保留字

您的查询结果如下:

“在人力资源信息(…列表文档到期日,…)中插入值(…'NULL',…


字符串
'NULL'
对于日期或int列无效。

是的。我想出来了。但是是否可以通过php输入
NULL
。否则,我将不得不编写7个
if
条件,并在这7个条件内对每个情况进行查询。必须有更聪明的方法吗?