将表单插入MySQL

时间:2015-01-28 14:40:34

标签: php mysql mysqli

我刚开始使用PHP和SQL,并希望将提交的表单插入到mysql表中。我从这里已经回答的问题中得到了很多东西,但是现在遇到的问题是数据没有插入到表中,我没有得到任何错误消息。用affected_rows检查它会导致-1但我无法找到我的错误。

表格

<form method="post" action="anmeld.php">
<table>
    <tr>
        <td>
            Familie/Name:
        </td><td>
            <input type="text" name="name" required>
        </td>
    </tr>

    <tr>
        <td>
            Wir kommen  Ja&nbsp;<input type="radio" name="anwesend" value="ja" checked>
            &nbsp;Nein&nbsp;<input type="radio" name="anwesend" value="nein">
        </td>
    </tr>

    <tr>
        <td>
            Wir sind 
        </td>
        <td><input type="number" name="adult">&nbsp;Erwachsene.
        </td>
    </tr>
    <tr>
        <td><br> Unsere Kinder sind<br>
            Kind <br>Kind<br>Kind<br>Kind
        </td>
        <td><br><br>
            <input type="number" name="child1"> Jahre alt. <br><input type="number" name="child2"> Jahre alt. <br><input type="number" name="child3"> Jahre alt. <br><input type="number" name="child4"> Jahre alt.
        </td>
    </tr>

    <tr>
        <td>
            <input type="submit" name="submit" value="Abschicken">
        </td>
    </tr>

</table>

php insert

    <?php

$mysqli = new mysqli("127.0.0.1", "user", "userpw", "dbname");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_err;
}

if (!empty($_POST["submit"])) {
    $familie = $_POST["name"];
    $anwesend = $_POST["anwesend"];
    $adult = $_POST["adult"];
    $child1 = $_POST["child1"];
    $child2 = $_POST["child2"];
    $child3 = $_POST["child3"];
    $child4 = $_POST["child4"];

    $sql = "INSERT INTO 'guests' ('id', 'familie', 'anwesend', 'adult', 'child1', 'child2', 'child3', 'child4')
 VALUES ('', '$familie', '$anwesend', '$adult', '$child1', '$child2', '$child3', '$child4')";

    $mysqli->query($sql);

    printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);
}
?>

我认为这是非常明显的事情,我只是忽视了,但我希望你们能帮助我。

编辑:是的,它是`和&#39;。现在工作正常。谢谢你们

1 个答案:

答案 0 :(得分:0)

您使用的是表和列的错误标识符,是引号。

删除表格和列周围的引号:

INSERT INTO guests (id, familie, anwesend, adult, child1, child2, child3, child4)

有关标识符限定符的更多信息,请参阅:

在查询后使用echo $mysqli->error;,这会表示语法错误。