簡體   English   中英

使用POST和PHP的SQL插入查詢的問題

[英]Issue with SQL Insert query using POST and PHP

本質上,我嘗試將以下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);
?>

我只是測試了全部。 您的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注入的攻擊。

一種簡單的方法是使用addslashes()。 像這樣:

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

那不會完全拯救您,但是總比沒有好。 無論如何,我可以使用您上面發布的確切PHP和HTML來工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM