MYSQL数据库未显示来自HTML表单

时间:2016-09-02 13:49:52

标签: php html mysql

我是PHP的新手,我在youtube上关注了一个简单的教程,我按照youtube视频,检查了双重和三重检查以确保我输入的所有内容都正确并且数据仍未插入。

我在互联网上搜索了几个小时,我想出了一个解决方案,但我不认为这是正确的方法

HTML

<html>
<head>

<title>Insert Form Data In MYSQL Database Using PHP</title>
</head>
<body>

<form action="insert.php" method="post">

    Name : <input type="text" name="username">
            <br/>
    Email : <input type="text" name="email">
            <br/>
    <input type="submit" value="Insert">
</form>
</body>
</html>

PHP

<?php

$con = mysqli_connect('localhost','root','');

if (!$con) {
    echo 'Not Connected To Server';
}

if (!mysqli_select_db($con,'tutorial')) {
    echo 'Database Not Selected';
}

if (isset($_POST['username'])){
    $Name = $_POST['username'];
}

if (isset($_POST['email'])){
    $Email = $_POST['email'];
}

$sql = "INSERT INTO person (Name, Email) VALUES ('John', 'john@gmail.com')";


if (!mysqli_query($con,$sql)) {
    echo 'Not Inserted';
} else {
    echo 'Inserted Successfully!';
}
header("refresh:10; url=index.html");
?>

我更换了&#39; $ Name&#39;和&#39; $ Email&#39;与John和john@gmail.com一起,然后我将其输入到html表单中,数据正确地进入数据库。

然后我在网上找到了另一个带有更多PHP的HTML表单,但它做了同样的事情(没有向数据库插入任何数据)

HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add Record Form</title>
</head>
<body>
<form action="insert1.php" method="post">
    <p>
        <label for="firstName">First Name:</label>
        <input type="text" name="firstname" id="firstName">
    </p>
    <p>
        <label for="lastName">Last Name:</label>
        <input type="text" name="lastname" id="lastName">
    </p>
    <p>
        <label for="emailAddress">Email Address:</label>
        <input type="text" name="email" id="emailAddress">
    </p>
    <input type="submit" value="Submit">
</form>
</body>
</html>

PHP

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Escape user inputs for security
$first_name = mysqli_real_escape_string($link, $_POST['firstname']);
$last_name = mysqli_real_escape_string($link, $_POST['lastname']);
$email_address = mysqli_real_escape_string($link, $_POST['email']);

// attempt insert query execution
$sql = "INSERT INTO persons (first_name, last_name, email_address) VALUES ('$first_name', '$last_name', '$email_address')";
if(mysqli_query($link, $sql)){
    echo "Records added successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>

这些字段是空白的,任何帮助都会非常有用!

顺便说一下这是字段显示我使用xampp服务器的方式。

enter image description here

1 个答案:

答案 0 :(得分:1)

我使用了以下代码,它对我来说很好。

  <?php

     $link = mysqli_connect("localhost", "root", "", "dummy");

      // Check connection
     if($link === false){
     die("ERROR: Could not connect. " . mysqli_connect_error());
     }

 /* Collect below values from $_POST
 $firstname = 'John';
 $lastname = 'Doe';
 $email = 'test@gmail.com';
 */
   // Escape user inputs for security
  $first_name = mysqli_real_escape_string($link, $firstname);
  $last_name = mysqli_real_escape_string($link, $lastname);
  $email_address = mysqli_real_escape_string($link, $email);

  // attempt insert query execution
     $sql = "INSERT INTO accounts (account_firstname, account_lastname, account_email) VALUES ('$first_name', '$last_name', '$email_address')";
   if(mysqli_query($link, $sql)){
       echo "Records added successfully.";
     } else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
   }

    // close connection
     mysqli_close($link);
     ?>