简体   繁体   中英

Insert user input from textbox to Database (PHP to PHPMYADMIN using mysql)

How do you guys insert user input from textbox(html/php) to database (phpmyadmin) using mysql

I keep getting the error "failed to insert" is there something missing with my code.

I did search online on how to fix it but nothing is working. I think something is missing with my code and I can't pin point it.

all files below are in 1 php file named index.php

<!DOCTYPE html>
 <?php

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = 'dad_trading';

$dbconn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($db);




if (isset($_POST['submit']))
{
    $Lastname   = $_POST['LastName'];
    $firstname  = $_POST['FirstName'];
    $Middlename = $_POST['MiddleName'];
    $address    = $_POST['Address'];
    $city       = $_POST['City'];
    $zipcode    = $_POST['ZipCode'];
    $email      = $_POST['email'];
    $number     = $_POST['number'];


     $query = ("INSERT INTO customer ([LName], [FName], [MName], [Street], [City], [ZipCode], [Email], [ContactNo]) VALUES ('$Lastname', '$firstname', '$Middlename', '$address', '$city','$zipcode', '$email', '$number')");

if(mysql_query($query))
 {
echo "<script>alert('INSERTED SUCCESSFULLY');</script>";
}
else
 {
 echo "<script>alert('FAILED TO INSERT');</script>";
 }

 }
?>

<html>
    <head>
        <meta charset="UTF-8">
        <title>sample</title>
    </head>
    <body>
        <form action="" method = "POST">

   First name:   
  &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
  Middle Name:
  &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
  Last Name:<br>
  <input name="FirstName" size="15" style="height: 19px;"  type="text" required>
      &nbsp; &nbsp; &nbsp; 
  <input name="MiddleName" size="15" style="height: 19px;"  type="text" required>
      &nbsp; &nbsp; &nbsp; 
  <input name="LastName" size="15" style="height: 19px;"  type="text" required>

  <br><br>

    Email Address:<br>
  <input name="email"  type="text" required placeholder="Enter A Valid Email Address" style="height: 19px;" size="30"><br><br>

  Home Address: <br>
  <input name="Address" type="text" required placeholder="Enter your home Address" style="height: 19px;" size="30" maxlength="30"><br><br>

  City:
   &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;
  Zipcode:
   <br>
  <input name="City" size="7" style="height: 19px;"  type="text" required>
    &nbsp; &nbsp; 
    <input name="ZipCode" size="7" style="height: 19px;"  type="text" required>
    <br><br>

  Telephone/Mobile Number: <br>
  <input name="number" type="text" required id="number" placeholder="Mobile Number" style="height: 19px;">

<br>
<br>

<button type ="submit" name="submit" value="send to database"> SEND TO DATABASE </button>
</form>
    </body>
</html>   

尝试使用服务器变量添加表单操作

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

Here's an example of code that works. From w3Schools . mysql_connect is deprecated, new mysqli works.

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

// 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 (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

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

$conn->close();
?>

Having tried myself to make your code work and as a beginner not knowing it was broken, I came across a few issues using your code. I leave this out for anyone who could end up here while learning on how to insert data in a database and to anyone who could want to point out the mistakes OP made by editing this answer.

I fixed the OP for my purposes, and it worked for me. Goal was to create database entries from a web form for some testing.

<html>
        <head>
            <meta charset="UTF-8">
            <title>sample</title>
        </head>

        <?php
    //These $variables related to the form data html elements eg "<input 
    //name="City"" input name=values, case sensitive which are derived from 
    //the //form submit with POST type, from the form at the end of this code 
    //block.
        if (isset($_POST['submit']))
        {
            $Lastname   = $_POST['LastName'];
            $firstname  = $_POST['FirstName'];
            $Middlename = $_POST['MiddleName'];
            $address    = $_POST['Address'];
            $city       = $_POST['City'];
            $zipcode    = $_POST['ZipCode'];
            $email      = $_POST['email'];
            $number     = $_POST['number'];

    //This is the sql query to apply the form inpur field values into the 
    database //from the user form in the web page. There is no validation 
    checking, which //an example at TutorialRepublic for CRUD and php...:

    https://www.tutorialrepublic.com/php-tutorial/php-mysql-crud- 
   application.php

    //...Is really much more thorough.

            $con = mysqli_connect('localhost','root','Levaral','test');
            $query = "INSERT INTO customer (LastName, FirstName, MiddleName, 
      Address, City, Zipcode, email, number) VALUES (" . " '" . $Lastname . 
    "', '" . $firstname . "', '" . $Middlename . "', '" . $address . "', '" . 
    $city . "', '" . $zipcode . "', '" . $email . "', '" . $number . "')";
            if (mysqli_query($con,$query))
                {
                echo "<script>alert('INSERTED SUCCESSFULLY');</script>";
                }
                else
                {
                echo "<script>alert('FAILED TO INSERT');</script>";
                }

                }
                ?>


    <body>
    //put html element data in a <form> so you can send the data here by POST 
    //type, this stumped me 
    //at first when I was starting.
    //I guess since the form is in the same page, it is available to the PHP 
    //function as some default.

    <form action="" method = "POST">

    First name:   
    &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
    &nbsp;
    Middle Name:
    &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
    Last Name:<br>
    <input name="FirstName" size="15" style="height: 19px;"  type="text" required>
    &nbsp; &nbsp; &nbsp; 
    <input name="MiddleName" size="15" style="height: 19px;"  type="text" required>
    &nbsp; &nbsp; &nbsp; 
    <input name="LastName" size="15" style="height: 19px;"  type="text" required>
    <br><br>

    Email Address:<br>
    <input name="email"  type="text" required placeholder="Enter A Valid Email Address" style="height: 19px;" size="30"><br><br>

    Home Address: <br>
    <input name="Address" type="text" required placeholder="Enter your home Address" style="height: 19px;" size="30" maxlength="30"><br><br>

    City:
    &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;
    Zipcode:
    <br>
    <input name="City" size="7" style="height: 19px;"  type="text" required>
    &nbsp; &nbsp; 
    <input name="ZipCode" size="7" style="height: 19px;"  type="text" required>
    <br><br>

    Telephone/Mobile Number: <br>
    <input name="number" type="text" required id="number" placeholder="Mobile Number" style="height: 19px;">

    <br>
    <br>

    <button type ="submit" name="submit" value="send to database"> SEND TO DATABASE </button>
    </form>

    //This part below was just for my feedback to see if it worked by 
    //returning some //data from the query, as in progress to have an edit 
    //area 
    //on the same page //without affecting the original if my mind serves me 
    //right.

        <?php
        /////

        mysqli_select_db($con,"customer");
        $sql="SELECT * FROM customer WHERE FirstName = '".$firstname."'";
        $result = mysqli_query($con,$sql);

        echo "<table>
        <tr>
        <th>Firstname</th>
        <th>Lastname</th>
        <th>City</th>
        <th>Email</th>
        <th>Number</th>
        </tr>";
        while($row = mysqli_fetch_array($result)) {
        echo '<tr style="width:20%">';
            echo '<td style="width:20%">' . $row['FirstName'] . "</td>";
            echo '<td style="width:20%">' . $row['LastName'] . "</td>";
            echo '<td style="width:20%">' . $row['City'] . "</td>";
            echo '<td style="width:20%">' . $row['email'] . "</td>";
            echo '<td style="width:20%">' . $row['number'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        mysqli_close($con);
        ?>

    </body>
    </html>   

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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