Php 如何通过表单将数据插入MYSQL

Php 如何通过表单将数据插入MYSQL,php,mysql,mysqli,Php,Mysql,Mysqli,在过去的两天里,我一直在尝试创建一个表单,将数据输入SQL数据库。数据库是功能性的,表是制作的,我可以通过MYSQL输入数据。我使用了两个文件,bidinput.html和bidentry.php Bidinput.HTML: <html> <body> <form action="bidentry.php" method="post"> Bidder: <input type=&q

在过去的两天里,我一直在尝试创建一个表单,将数据输入SQL数据库。数据库是功能性的,表是制作的,我可以通过MYSQL输入数据。我使用了两个文件,
bidinput.html
bidentry.php

Bidinput.HTML:

    <html>
    <body>
    <form action="bidentry.php" method="post">
    Bidder: <input type="text" name="BidderNumber"><br>
    Description: <input type="text" name="Description"><br>
    Price: <input type="decimal" name="Price"><br>
    Quantity: <input type="integer" name="Quantity"><br>
    Lot: <input type="text" name="Lot"><br>
    <input type ="submit">
    </form>

    </body>
    </html>

投标人:
说明:
价格:
数量:
地段:
bidentry.php:

 <?php
    ######### From bidinput.html

    $BidderNumber = $_POST['BidderNumber'];
    $Description = $_POST['Description'];
    $Price = $_POST['Price'];
    $Quantity = $_POST['Quantity'];
    $Lot = $_POST['Lot'];
    ########

    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "abcd1234";
    $dbname = "auction";
    // Create connection

    $mysqli = new mysqli($dbhost,$dbuser,$dbpass,$dbname);

    // Check connection
    if ($mysqli->connect_errno){
        echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    }
    else{
        echo "Connected successfully";

    $sql = "INSERT INTO Bids (BidderNumber,Description,Price,Quantity,Lot) VALUES         ('$BidderNumber','$Description','$Price','$Quantity','$Lot')";

    echo "Error: " . $sql . "<br>" . $mysqli->error;

    }$mysqli->close();

    ?>

警告您需要保护自己不受SQL注入的影响。您应该使用准备好的语句来屏蔽SQL注入

您实际上没有使用当前代码运行任何查询

您需要使用:

$mysqli->query($sql);
准备好的语句示例

下面是一个INSERT示例,其中包含基于代码准备的语句:

mysqli_报告(mysqli_报告错误| mysqli_报告严格);
$mysqli=newmysqli($dbhost、$dbuser、$dbpass、$dbname);
$stmt=$mysqli->prepare(“插入投标文件(投标编号、说明、价格、数量、批次)值(?,,,,,?)”;
$stmt->bind_param(“sssss”、$_POST['biddername']、$_POST['Description']、$_POST['Price']、$_POST['Quantity']、$_POST['Lot']);
$stmt->execute();
$stmt->close();
编辑:将其放在PHP文件的顶部:

ini\u集('display\u errors',1);
ini设置(“显示启动错误”,1);
错误报告(E_全部);
您不希望在生产环境中显示错误,但在开发环境中可以。
您可能需要检查PHP.INI文件。至少默认情况下应该打开
log\u errors
,错误会记录在apache错误日志中。

我仍然会看到一个白色屏幕,apache2日志显示没有错误。是否有某种调试脚本可以运行?数据是否进入表中?它现在正在工作。我重新启动了SQL server,突然它开始工作了。非常感谢你的帮助。让我们看看我是否理解正确。准备好的声明基本上有四个部分。。。。1.准备这是我定义要插入数据的列的地方。2.使用$POST[]绑定这标识要输入到准备行标识的列中的数据。3.执行和4。接近。如果没有最后一句话,我还会受到sql注入的影响吗?显然,我使用的是一个老参考PHP&MYSQL for Dummies第三版。它没有提到准备好的声明。你会推荐一个参考吗?你不会出错的。您可以输出查询而不执行它。你应该使用事先准备好的语句。