-1

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

3 回答 3

2

乍一看,我可以告诉你,你试图绑定两个参数,但你只绑定一个。

乍一看,您的准备中也缺少一个右括号。

$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)");
//                                                               ^^^  ?
$statement->bind_param('ss',$_POST['name']);
//                      ^^  ^^^^^^^^^^^^^^ ???
于 2013-06-03T08:26:51.873 回答
0

很抱歉,但是查看您的代码,我认为一切都很好,只是我不明白这一行:

$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)";

Prepare opens the bracket ( but doesn't close it)

可能是这个问题吗?

于 2013-06-03T08:29:28.687 回答
0

您插入一列“名称”,但您绑定了 2 个值。我认为正确的语法是:

    $statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?)");
    $statement->bind_param('s',$_POST['name']);
    $statement->execute();
于 2013-06-03T11:07:36.373 回答