为什么我的数据库中的数据在两个条目之间输入了2个空行?

时间:2016-05-25 09:29:06

标签: php mysql

我的数据库中的表格片段: enter image description here

我的PHP是这样的:

 <?php
     $item="";
        try{
        if ( ! empty($_POST['item_name'])){
        $item=$_POST['item_name'];
        }        
        $servername = "localhost";
        $conusername = "root";
        $conpassword = "";
        $dbname = "annapoorna";
        $dsn='mysql:dbname='.$dbname.';host='.$servername;
        $conn = new PDO($dsn, $conusername, $conpassword);
        $sql='INSERT INTO item(item_name) values (:item_name)';
        $sth=$conn->prepare($sql); 
        $sth->execute(array(':item_name'=>$item ));
        }

catch(PDOException $e){
    echo "Error: " . $e->getMessage();
     }
   ?>     

为什么两个条目之间存在差距?它正在我正在创建的每个表中发生。

3 个答案:

答案 0 :(得分:1)

如果条件

,请添加您的添加代码
  if (!empty($_POST['item_name'])){
        $item=$_POST['item_name'];
        $servername = "localhost";
        $conusername = "root";
        $conpassword = "";
        $dbname = "annapoorna";
        $dsn='mysql:dbname='.$dbname.';host='.$servername;
        $conn = new PDO($dsn, $conusername, $conpassword);
        $sql='INSERT INTO item(item_name) values (:item_name)';
        $sth=$conn->prepare($sql); 
        $sth->execute(array(':item_name'=>$item ));
    }

答案 1 :(得分:0)

只有在POST设置完成后,您才会将$item参数分配给if ( ! empty($_POST['item_name'])){ $item=$_POST['item_name']; }

$item

如果未设置,$sth->execute(array(':item_name'=>$item )); 未定义,则计算为空字符串。

$item

因此,您希望更改代码,以便在未设置file时不插入。

答案 2 :(得分:0)

你正在做的是告诉应用程序,如果不是空$_POST['item_name']给它$item它的值并执行下面的代码。如果$_POST['item_name']为空,则下面的代码仍然使用emtpy变量执行,从而清空记录。更改您的代码,使其仅在填充$_POST['item_name']时执行:

<?php
     $item="";
        try{
        if ( ! empty($_POST['item_name'])){
        $item=$_POST['item_name'];

        $servername = "localhost";
        $conusername = "root";
        $conpassword = "";
        $dbname = "annapoorna";
        $dsn='mysql:dbname='.$dbname.';host='.$servername;
        $conn = new PDO($dsn, $conusername, $conpassword);
        $sql='INSERT INTO item(item_name) values (:item_name)';
        $sth=$conn->prepare($sql); 
        $sth->execute(array(':item_name'=>$item ));
         }
        }

catch(PDOException $e){
    echo "Error: " . $e->getMessage();
     }
   ?>   

就像更改if语句的结尾一样简单。