【发布时间】:2014-01-29 22:33:46
【问题描述】:
我是 php 新手,我一直在尝试获取一个表单以将值发布到数据库。
我已成功连接到数据库,因为我可以从表中提取值并在 HTML 中显示它们。
我相信 mysqli_query 是正确的,因为我可以将 $variables 替换为示例,它们可以工作并发布。
但是,我似乎找不到正确的组合如何插入 $name 和 $desc 变量,我已经尝试过 $name、'$name' 和 '$_POST[friendname]。我错过了什么?
<?php
include 'includes/connect.php';
$name = $_POST[friendname];
$desc = $_POST[desc];
//WRITE TO DATABASE
if(!$_POST) {
echo "Form info: " . $name . " " . $desc;
echo "<br />Use the form below to add a new person! <br /><br />";
}
else {
$query = "INSERT INTO Friends (ID, Name, Description) VALUES ('NULL', $name, $desc)";
mysqli_query($sql, $query);
echo "<br />You've added " . $name . "<br /><br />";
}
$result = mysqli_query($sql,"SELECT * FROM Friends");
while($row = mysqli_fetch_array($result)) {
echo "<strong>" . $row['Name'] . "</strong> - " . $row['Description'];
echo "<br>";
}
?>
<p><strong>Add a new person to the database</strong></p>
<!-- FORM -->
<form name="addform" action="index.php" method="post">
Name: <input type="text" name="friendname" /><br />
Description: <input type="text" name="desc" /><br />
<input type="submit" name="submit" label="submit" />
</form>
【问题讨论】:
-
*EDIT 很奇怪:下面的第一行有时有效,但有时无效,连续工作 3 次,但不是第 4 行。不知道为什么会这样。 $query = "INSERT INTO Friends (ID, Name, Description) VALUES ('NULL', '$name', '$desc')";
-
通过将 NULL 括在引号中,您将其设为字符串而不是 NULL。您要做的是让数据库创建密钥/ID。尝试改用这个
INSERT INTO Friends(Name, Description) VALUES("$name", "$desc")