我刚开始使用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 <input type="radio" name="anwesend" value="ja" checked>
Nein <input type="radio" name="anwesend" value="nein">
</td>
</tr>
<tr>
<td>
Wir sind
</td>
<td><input type="number" name="adult"> 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;。现在工作正常。谢谢你们答案 0 :(得分:0)
您使用的是表和列的错误标识符,是引号。
删除表格和列周围的引号:
INSERT INTO guests (id, familie, anwesend, adult, child1, child2, child3, child4)
有关标识符限定符的更多信息,请参阅:
在查询后使用echo $mysqli->error;
,这会表示语法错误。