如何使用PHP将HTML输入字段发送到MySQLi数据库?

时间:2018-04-19 07:10:51

标签: php html

我正在尝试将输入字段中输入的数据发送到我的数据库,我似乎无法使其正常运行..

最终目标是将输入字段输入数据库并在另一个窗口中显示插入的数据。

这是我的代码

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

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

// create a variable
$naam=$_POST['namen'];
$plaats=$_POST['plaatsen'];
$land=$_POST['landen'];
 
//Execute the query
mysqli_query($conn,"INSERT INTO phptoets(Namen,Plaatsen,Landen)
				VALUES('$naam','$plaats','$land')");

?> 

<!DOCTYPE html>
<html>
<head>
	<link rel="stylesheet" type="text/css" href="main.css">
	<title>PHP Toets</title>
</head>
<body>

<div class="import_intel">
	
</div>
<form method="POST">
<div class="invulform">

	<h2>Vul hier de gegevens in die naar de database moeten</h2>

	<input type="text" name="naam" class="input_name" placeholder="Naam"><br>
	<input type="text" name="plaats" class="input_plaats" placeholder="Plaats"><br>
	<input type="text" name="land" class="input_land" placeholder="Land"><br>
	<input type="submit" name="submit" class="submit_button" value="Verstuur">
	
</div>
</form>

<div class="overzichtform">
	<h3>Data</h3>
	
</div>

</body>
</html>

3 个答案:

答案 0 :(得分:2)

试试这个。它会对你有所帮助。我对您的代码进行了一些更改    - 添加表单以在服务器上发布数据
   - 在连接中添加数据库名称    - 在表单中添加provincie字段(因为你试图在php中得到它)
   - 在查询中使用与连接时声明的相同的变量

<?php
  if (isset($_POST['submit'])) {
    $servername = "localhost";
    $username = "root";
    $password = "";
    $database = "DATABASE";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $database);

    // Check connection
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }

    // create a variable
    $namen=$_POST['naam'];
    $plaatsen=$_POST['plaats'];
    $landen=$_POST['land'];
    $provincie=$_POST['provincie'];

    //Execute the query
    mysqli_query($conn, "INSERT INTO employees1(naam,plaats,land,provincie) VALUES('$namen','$plaatsen','$landen','$provincie')");
  }

?> 

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="main.css">
    <title>PHP Toets</title>
  </head>
  <body>
    <div class="import_intel">
    </div>
    <form method="POST" action="">
      <div class="invulform">
        <h2>Vul hier de gegevens in die naar de database moeten</h2>
        <input type="text" name="naam" class="input_name" placeholder="Naam"><br>
        <input type="text" name="plaats" class="input_plaats" placeholder="Plaats"><br>
        <input type="text" name="land" class="input_land" placeholder="Land"><br>
        <input type="text" name="provience" class="input_provience" placeholder="Provience"><br>
        <input type="button" name="submit" class="submit_button" value="Verstuur">
      </div>
    </form>
    <div class="overzichtform">
      <h3>Data</h3>
    </div>
  </body>
</html>

答案 1 :(得分:0)

这是我的解决方案:

您忘记设置数据库名称和输入字段的名称不等于$ _POST名称。

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

// Create connection
$conn = new mysqli($servername, $username, $password, $database);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

// create a variable
$naam=$_POST['naam'];
$plaats=$_POST['plaats'];
$land=$_POST['land'];

//Execute the query
mysqli_query($conn,"INSERT INTO phptoets(namen,plaatsen,landen)
                VALUES('$naam','$plaats','$land')");

?> 

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="main.css">
    <title>PHP Toets</title>
</head>
<body>

<div class="import_intel">

</div>
<form method="post">
<div class="invulform">

    <h2>Vul hier de gegevens in die naar de database moeten</h2>

    <input type="text" name="naam" class="input_name" placeholder="Naam"><br>
    <input type="text" name="plaats" class="input_plaats" placeholder="Plaats"><br>
    <input type="text" name="land" class="input_land" placeholder="Land"><br>
    <input type="submit" name="submit" class="submit_button" value="Verstuur">

</div>
</form>

<div class="overzichtform">
    <h3>Data</h3>

</div>

</body>
</html>

答案 2 :(得分:0)

<?php 
// TESTS

$servername = "localhost";
$username = "root";
$password = "";
$db_name = "test"; 

// Create connection
$conn = new mysqli($servername, $username, $password, $db_name);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully  <br>";

if(isset($_POST['submit']))
{
    // create a variable
    $a = (string)filter_input(INPUT_POST,'naam');
    $b = (string)filter_input(INPUT_POST,'plaats');
    $c = (string)filter_input(INPUT_POST,'land');
    $d = (string)filter_input(INPUT_POST,'provincie');

    echo("executing query <br>");
    //Execute the query
    if($a != null && $b != null && $c != null && $c != null)
    {
        $sql="INSERT INTO employees1 (naam,plaats,land,provincie) VALUES (?,?,?,?)";
        echo("sql ".$sql. "<br>");
        if($stmt = $conn->prepare($sql))
        {
            $stmt->bind_param("ssss",$a,$b,$c,$d);
            $stmt->execute();
            $stmt->close();
        }
    }

    $sql = "SELECT naam, plaats, land, provincie FROM employees1";      
    if ($stmt = $conn->prepare($sql)) 
    {
        $stmt->execute();
        $stmt->bind_result($naam,$plaats,$land,$provincie);  
        while ($stmt->fetch())
        {
            printf("naam : %s, plaats: %s, land: %s, provincie: %s <br>",$naam,$plaats,$land,$provincie);
        }
        $stmt->close();
    }
}
?> 

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="main.css">
    <title>PHP Toets</title>
</head>
<body>

<div class="import_intel">

</div>

<div class="invulform">

    <h2>Vul hier de gegevens in die naar de database moeten</h2>
    <form class="my_form" target="_self" enctype="multipart/form-data" method="post">
        <input type="text" name="naam" class="input_name" placeholder="Naam"><br>
        <input type="text" name="plaats" class="input_plaats" placeholder="Plaats"><br>
        <input type="text" name="land" class="input_land" placeholder="Land"><br>
        <input type="text" name="provincie" class="input_land" placeholder="Provincie"><br>
        <input type="submit" name="submit" class="submit_button" value="Verstuur">
    </form>
</div>

<div class="overzichtform">
    <h3>Data</h3>

</div>

</body>
</html>

我只列出我在代码中更改的一些内容,而不是语法错误

  1. 你没有在sql连接中指定db_name
  2. 您不使用预准备语句或任何类型的输入过滤 (注意:我的输入过滤非常基础,详细了解如何使用 过滤输入)
  3. 要解决html表单,你需要创建一个并提交输入 在里面输入