我是PHP的新手,只是尝试简单的表单但是有insert.php页面的问题 首先,我的数据库由4个记录(id,name,phonenumber,date)组成,id列是自动增量页面。
我创建显示信息页面调用索引php它运作良好 但问题是insert.php页面,页面没有加载,不能插入值,并在索引php页面中看到新的插入值
<?php
if(isset($_post['name'])){
$mysqli = new mysqli('localhost','root','','interdet');
$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)";
$statement->bind_param('ss',$_POST['name']);
$statement->execute();
echo "Done! <a href='index.php'>Go here see new detective </a>";
}
else {
?>
<form action="insert.php" method="POST">
<p>Name : <input type="text" name="name" /> <P>
<p><input type="submit"/></p>
</form>
<?php } ?>
答案 0 :(得分:2)
乍一看,我可以告诉你,你正试图绑定两个参数,但你只能绑定一个参数。
乍一看,你的准备工作也错过了一个结束括号。
$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)");
// ^^^ ?
$statement->bind_param('ss',$_POST['name']);
// ^^ ^^^^^^^^^^^^^^ ???
答案 1 :(得分:0)
我很抱歉,但看着你的代码,我觉得一切都还好,只是我不理解这一行:
$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)";
Prepare opens the bracket ( but doesn't close it)
可能是这个问题吗?
答案 2 :(得分:0)
您在一列中插入“名称”,但您绑定了2个值。我认为正确的语法是:
$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?)");
$statement->bind_param('s',$_POST['name']);
$statement->execute();