【发布时间】:2019-01-24 14:33:32
【问题描述】:
我正在尝试制作一个表格并将其上传到我的数据库中,但它不起作用。
这是我的 HTML 代码:
<form name="Form-Request" method="post" action ="icn/form.php">
<div>
<p><input type = "text" placeholder="Name" name = "name"></p>
<p><input type = "email" placeholder="Email-address" name = "email"></p>
<p><input type = "text" placeholder="Virtual Airline" name = "va"></p>
<p><input type = "text" placeholder="Virtual Airline (IATA Code)" name = "va-iata"></p>
<p><select name="pricing">
<option>Free</option>
<option>Business</option>
<option>Pro</option>
</select></p>
<p><select name="vam-vms">
<option>PHPVMS</option>
<option>VAM</option>
</select></p>
<p><input type = "text" placeholder="Additional Info" name = "add-info"></p>
<input class="button-primary" type="submit" value="Submit">
这是我的 PHP 发布文件,我已经输入了数据库详细信息,但我不想分享它:):
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$va = $_POST['va'];
$vaiata = $_POST['va-iata'];
$pricing = $_POST['pricing'];
$vamvms = $_POST['vam-vms'];
$additionalinfo = $_POST['add-info'];
<?php
$servername = "host";
$username = "username";
$password = "password";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO request_site (Name, Email Address, Virtual Airline, Virtual Airline IATA, Pricing, VAM/PHPVMS, Additional info)
VALUES ('$name', '$email', '$va', '$vaiata', '$pricing', '$vamvms', '$additionalinfo' )";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
谢谢。
【问题讨论】:
-
it doesn't work 是什么意思?您对 SQL 注入持开放态度
-
列通常没有空格。如果表中的列名有空格,则需要用反引号将列名括起来。明确检查mysqli errors 将指出您的查询有什么问题。
-
用反引号包围所有表格列。
INSERT INTO request_site (`Name`, `Email Address`, `Virtual Airline`, `Virtual Airline IATA`, `Pricing`, `VAM/PHPVMS`, `Additional info`)如果这些是您的实际表列。 -
另外,您对 SQL 注入持开放态度。由于您使用的是 mysqli,因此请利用 prepared statements 和 bind_param。 这将解决您的值中可能出现的任何令人讨厌的引用问题,但对列名没有帮助。
-
我从来不需要在查询中使用反引号,这就是为什么当我在代码中看到它们时我会立即感到头疼:o