簡體   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