将表单插入 MySQL


Insert form into MySQL

我刚开始使用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 插入

    <?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);
}
?>

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

编辑:是的,它是'和'。现在工作正常。谢谢你们

您对表和列使用了不正确的标识符,即引号。

删除表格和列两边的引号:

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

有关标识符限定符的详细信息,请参阅:

  • http://dev.mysql.com/doc/refman/5.0/en/identifier-qualifiers.html

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