簡體   English   中英

$ _POST ['var']到MySQL DB?

[英]$_POST['var'] into MySQL DB?

我正在使用WAMP嘗試學習一些PHP和SQL。 我正在嘗試從一個非常基本的表中獲取用戶輸入:

<form action="input.php" method="post" class="registration_form"/>
  <fieldset>
    <div class="elements">
      <label for="name">Username :</label>
      <input type="text" id="name" name="name" size="25" />
    </div>
    <div class="elements">
      <label for="e-mail">E-mail :</label>
      <input type="text" id="e-mail" name="e-mail" size="25" />
    </div>
    <div class="elements">
      <label for="Password">Password:</label>
      <input type="password" id="Password" name="Password" size="25" />
    </div>
    <div class="submit">
     <input type="hidden" name="formsubmitted" value="TRUE" />
      <input type="submit" value="Register" />
    </div>
  </fieldset>
</form>

我希望能夠接受輸入並發布到數據庫。 我一直在嘗試通過以下代碼實現此目的:

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

//Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
 //Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 


$sql = "INSERT INTO MyGuests (name, email, password)
VALUES ($_POST[name], $_POST[e-mail], $_POST[password])";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;//
}

$conn->close();
var_dump('name', 'e-mail', 'password');

?>  

當我嘗試在$ _POST [“ name”]中插入“”時,出現錯誤:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\input.php on line 16

當我嘗試刪除“”時,出現此錯誤:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\input.php on line 16

我還嘗試在代碼頂部設置變量:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
$name=$_POST['name']

//Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
 //Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 


$sql = "INSERT INTO MyGuests (name, email, password)
VALUES ('name','email', 'password');

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;//
}

$conn->close();
var_dump('name', 'e-mail', 'password');

?>  

這樣,我最終收到一條錯誤消息:

( ! ) Parse error: syntax error, unexpected '$conn' (T_VARIABLE) in C:\wamp\www\input.php on line 9

我可以使用$ _POST在另一個腳本中回顯該名稱,我不確定為什么它不能與SQL命令一起使用。 如果有人願意幫助和/或給我一些資源以供學習/研究,我將不勝感激!

您缺少“;” 之后:$ name = $ _ POST ['name']

嗨,請注意一些要點

1)您將收到未定義索引的警告,因為您沒有檢查發布的值。 我們應該在使用值之前使用isset()

2)其次,每當您給php中的任何標簽賦予任何名稱時,都嘗試使用lowercase ,以確保不會由於鍵入lowercaseuppercase而導致錯誤。

3)如果您的單詞很長,請嘗試使用underscore ,因此請使用e_mail

因此,您可以使用此php代碼

     <?php

      if(isset($_POST['register'])){
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "test";
    $conn = new mysqli($servername, $username, $password, $dbname);
     //Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

     $name = $_POST['name'];
     $email = $_POST['e_mail'];
     $password = $_POST['password'];
    $sql = "INSERT INTO MyGuests(name, email, password) VALUES('$name','$email','$password')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;//
}

$conn->close();
      }
      ?>

我已將名稱添加到您的submit按鈕,還將e-mail更改為e_mail ,將name="Password"更改為name="password"

<form action="input.php" method="post" class="registration_form"/>
  <fieldset>
    <div class="elements">
      <label for="name">Username :</label>
      <input type="text" id="name" name="name" size="25" />
    </div>
    <div class="elements">
      <label for="e-mail">E-mail :</label>
      <input type="text" id="e_mail" name="e_mail" size="25" />
    </div>
    <div class="elements">
      <label for="Password">Password:</label>
      <input type="password" id="Password" name="password" size="25" />
    </div>
    <div class="submit">
     <input type="hidden" name="formsubmitted" value="TRUE" />
      <input type="submit" value="Register" name="register" />
    </div> 
  </fieldset>
</form>

暫無
暫無

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

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