PHP / mySQL:INSERT INTO未发布正确的值

时间:2017-02-24 09:51:51

标签: php html mysql

我尝试使用以下代码将表单中的某些值插入到我的数据库中:

<?php
$link = mysqli_connect("myHost", "myUsername", "myPW", "myDB");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Escape user inputs for security
$name1 = mysqli_real_escape_string($link, $_REQUEST['plannercolumn1']);
$name2 = mysqli_real_escape_string($link, $_REQUEST['plannercolumn2']);
$name3 = mysqli_real_escape_string($link, $_REQUEST['plannercolumn3']);
$name4 = mysqli_real_escape_string($link, $_REQUEST['plannercolumn4']);
$name5 = mysqli_real_escape_string($link, $_REQUEST['plannercolumn5']);
$name6 = mysqli_real_escape_string($link, $_REQUEST['plannercolumn6']);

// attempt insert query execution
$sql = "INSERT INTO anmeldungen (FR_PM) VALUES ('$name1')";
$sql = "INSERT INTO anmeldungen (SA_AM) VALUES ('$name2')";
$sql = "INSERT INTO anmeldungen (SA_PM) VALUES ('$name3')";
$sql = "INSERT INTO anmeldungen (SO_AM) VALUES ('$name4')";
$sql = "INSERT INTO anmeldungen (SO_PM) VALUES ('$name5')";
$sql = "INSERT INTO anmeldungen (MO_AM) VALUES ('$name6')";
if(mysqli_query($link, $sql)){
    echo "Name ", $name1, " erfolgreich eingetragen. Wir freuen uns auf dich!";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>

当我提交表单时,它正在创建一个新行,但它并没有在所有列中插入任何值,而是在MO_AM列中插入。我的PHP有错吗?

3 个答案:

答案 0 :(得分:3)

您的查询应如下所示:

$sql = "INSERT INTO anmeldungen 
(FR_PM,SA_AM,SA_PM,SO_AM,SO_PM,MO_AM) 
VALUES ('$name1','$name2','$name3','$name3','$name4','$name5','$name6')";

你确定$ name变量有值吗?

答案 1 :(得分:1)

您的SQL查询应该是:

$sql = "INSERT INTO `anmeldungen`(`FR_PM`,`SA_AM`,`SA_PM`,`SO_AM`,`SO_PM`,`MO_AM`) 
                VALUES ('$name1','$name2','$name3','$name4','$name5','$name6')";

虽然您不应该使用$ variable作为插入,但您应该寻找绑定它们以防止SQL注入。

答案 2 :(得分:1)

您所做的只是覆盖了查询。您可以在同一个表中插入多个值。 更改您的查询: -

编辑: 如果您使用多行进行查询,它应该如下所示。 当你附加变量时。

$sql = 'INSERT INTO anmeldungen (FR_PM,SA_AM,SA_PM,...)'
      .' VALUES ('.$name1.','.$name2.','. .... .)'
      ;