[英]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.