php简单的插入表单

时间:2013-06-03 08:25:04

标签: php mysql database mysqli

我是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   } ?>

3 个答案:

答案 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();