使用变量进入SQL数据库时出错500

时间:2017-08-31 08:54:11

标签: php sql

我收到了这段代码,它给了我一个错误500。 我可能在这里遇到了一些问题,但我真的需要一些帮助。

这是我的代码

<?php include('index.php'); ?>
<?php include('config.php'); ?>
<?php
$fornavn = $_POST['fornavn'];
$efternavn = $_POST['efternavn'];
$postnummer = $_POST['postnummer'];
$alder = $_POST['alder'];

$sql = INSERT INTO medlemmer (fornavn, efternavn, postnummer, alder)
VALUES ('$fornavn', '$efternavn', '$postnummer', '$alder');

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

POST标签在index.php中是相同的。 请帮忙。 提前谢谢!

3 个答案:

答案 0 :(得分:4)

您需要先将查询放在字符串""

<?php include('index.php'); ?>
<?php include('config.php'); ?>
<?php
$fornavn = $_POST['fornavn'];
$efternavn = $_POST['efternavn'];
$postnummer = $_POST['postnummer'];
$alder = $_POST['alder'];

$sql = "INSERT INTO medlemmer (fornavn, efternavn, postnummer, alder)
VALUES ('$fornavn', '$efternavn', '$postnummer', '$alder');";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

还可以使用预备语句来防止sql注入

启用PHP错误,以便您可以获得错误。在PHP文件中添加以下行

ini_set('display_errors',1);
error_reporting(E_ALL); 

答案 1 :(得分:1)

首先看到任何可能的错误,因为它可能有助于在开头找到问题类型:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

我个人总是在SQL-Query周围使用“”,而且我发现你还没有这样做,也许你应该添加它们,所以就这样做:

$sql = "INSERT INTO medlemmer (fornavn, efternavn, postnummer, alder)VALUES 
('$fornavn', '$efternavn', '$postnummer', '$alder')";

另外我假设你的config.php中定义了$ conn?

答案 2 :(得分:1)

正如评论中所述,首先请确保您启用了错误报告error_reporting(E_ALL);ini_set('display_errors',1)

另请查看此SQL查询字符串,该字符串未包含在引号中。

$sql = INSERT INTO medlemmer (fornavn, efternavn, postnummer, alder)
VALUES ('$fornavn', '$efternavn', '$postnummer', '$alder');

应该是

$sql = "INSERT INTO medlemmer (fornavn, efternavn, postnummer, alder)
VALUES ('$fornavn', '$efternavn', '$postnummer', '$alder')";