我的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();
}
?>
为什么两个条目之间存在差距?它正在我正在创建的每个表中发生。
答案 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
语句的结尾一样简单。