基本上,我尝试使用以下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);
?>
答案 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来工作。