簡體   English   中英

為什么在數據庫中輸入的數據在兩個條目之間有2個空白行?

[英]Why is data in my database entered with 2 blank rows between two entries?

我的數據庫中的一個表的片段: 在此處輸入圖片說明

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

為什么兩個條目之間存在差距? 它正在我創建的每個表中發生。

如果有條件,則添加您的添加代碼

  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 ));
    }

僅在POST參數設置為$item時才將其分配。

if ( ! empty($_POST['item_name'])){
    $item=$_POST['item_name'];
}   

如果未設置,則$item是未定義的,其結果為空字符串。

$sth->execute(array(':item_name'=>$item ));

因此,您需要更改代碼,以便在未設置$item時不插入代碼。

您正在做的就是告訴應用程序$_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語句的結尾一樣簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM