繁体   English   中英

PHP表单数据未正确提交到数据库中

[英]php form data not being submitted in database correctly

我的数据库名称是login,并且有一个名为users的表,该字段分为三列:name,id和post。 当我按下“提交”按钮时,id会增加,并会创建新记录,但在这些字段中不会创建任何实际数据。 请帮忙

 <?php
$servername="localhost";
$username="root";
$password="";
$dbname="login";

$conn=new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error){
    die("connection error:".$conn->connect_error);
}else{
    echo 'connected successfully';
}
#defining varriables
$user_name = isset($_POST['user_name']);
$post = isset($_POST['post']);

#connect this to login details and pick the userrname

$sql="INSERT INTO posts(user_name,post)
VALUES('$user_name','$post')";
if($conn->query($sql)===TRUE){
    echo "your post was published";
}?>

表格数据

    <form action="" method="post">
    <input type="text" name="user_name"/>
    <input type="text" name="post"/>
    <input type="submit" name="post to cdrone"/>
    </form>

PHP的isset()返回一个布尔值。 因此,您的$user_name$post变量都将被设置为truefalse ,而不是从表单中发布的值。

考虑根据isset()的值有条件地设置值。
我更喜欢使用三元运算符来包含一些验证:

if (!empty($_POST)) {

  $user_name = !empty(trim($_POST['user_name'])) ? trim($_POST['user_name']) : false;
  $post = !empty(trim($_POST['post'])) ? trim($_POST['post']) : false;

  if (!$user_name) {
    echo "User Name is required.";
  } elseif (!$post) {
    echo "Post is required.";
  } else {
    // insert into database
  }

}

表达式(expr1)? (expr2):(expr3)如果expr1计算为TRUE,则计算为expr2,如果expr1计算为FALSE,则为expr3。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM