我一直在寻找一些答案,但无法弄清楚发生了什么。
SQL 连接工作正常,我已经检查过了。所以我有这个 POST 方法。
if(isset($_POST['new_data'])) {
$new_nm = mysqli_real_escape_string($db, $_REQUEST['new_name']);
$new_pstn = mysqli_real_escape_string($db, $_REQUEST['new_position']);
...
$db->query("INSERT INTO data (name, position, description, twitter, email, image) VALUES('$new_nm', '$new_pstn',
'$new_dscrpt', '$new_twt', '$new_mail', '$new_img')");
}
这是我从中获取数据的表单:
<form role="form" method="post">
<label>Name</label>
<input name="new_name" class="form-control" />
<label>Position</label>
<input name="new_position" class="form-control" />
...
<button type="submit" name="new_data">Submit!</button>
</form>
当我点击按钮时,我没有插入数据。我究竟做错了什么?我有另一个具有不同名称的 POST 方法正在工作(该方法进行更新)。
非常感谢。
最佳答案
好吧,我会试着回答这个问题。
根据表结构,问题出在id
字段,应该是int
,AUTO_INCREMENT。
另外,我想对您的意见提出一些建议
if(isset($_POST['new_data']))
{
//Always check your input and sanitize it with htmlspecialchars() or htmlentities()
$new_nm = htmlspecialchars(isset($_REQUEST['new_name']) ? $_REQUEST['new_name'] : "");
$new_nm = mysqli_real_escape_string($db, $new_nm);
...
$db->query("INSERT INTO data (name, position, description, twitter, email, image) VALUES('$new_nm', '$new_pstn',
'$new_dscrpt', '$new_twt', '$new_mail', '$new_img')");
}
关于PHP + MySQL 插入不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44611661/