使用POST和PHP的SQL插入查询的问题

时间:2019-06-13 03:52:27

标签: php json post

基本上,我尝试使用以下PHP脚本将新记录插入数据库中。

当在PHP脚本中对值进行硬编码以插入所有内容时,当我使用POST方法时,这些值永远不会写入数据库。以下是我的脚本:

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

$customer = $_POST['customerName'];
$manufacturer = $_POST['manufacturerName'];
$model = $_POST['model'];
$serial = $_POST['serial'];

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}


$sql = "INSERT INTO Equipment (customer, manufacturer, model, serial)
VALUES ('$customer', '$manufacturer', '$model', '$serial');";

if (mysqli_multi_query($conn, $sql)) {
    echo "New records created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

1 个答案:

答案 0 :(得分:-1)

我刚刚进行了全部测试。您的PHP代码按原样工作。要查看帖子中的变量,您可以添加:

var_dump( $_POST );

位于代码顶部。这将向您表明输入的内容是正确的。我用来完成这项工作的HTML如下:

<html>
<body>
    <form action="post.php" method=POST>
        Customer: <input type="text" name="customerName"><br />
        Manufacturer: <input type="text" name="manufacturerName"><br />
        Model: <input type="text" name="model"><br />
        Serial: <input type="text" name="serial"><br />
        <input type="submit">
    </form>

</body>

请注意,输入的名称与您在PHP中期望的名称完全相同。

此外,您应该在收到变量时对它们进行某种形式的清理,否则,您很容易受到各种SQL注入的攻击。<​​/ p>

一种简单的方法是使用addslashes()。像这样:

$customer = addslashes( $_POST['customerName'] );
$manufacturer = addslashes( $_POST['manufacturerName'] );
$model = addslashes( $_POST['model'] );
$serial = addslashes( $_POST['serial'] );

那不会完全拯救您,但是总比没有好。无论如何,我可以使用您上面发布的确切PHP和HTML来工作。