-1

私はPHPの初心者で、単純なフォームを試してみましたが、最初にinsert.phpページに問題があり、私のデータベースは4つのレコード(id、name、phonenumber、date)で構成され、id列は自動インクリメントページです。

ページ呼び出しインデックスphpに情報を表示するために作成しますが、問題はページが読み込まれず、値を挿入できず、インデックスphpページで新しい挿入値を表示できないinsert.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

一見すると、2 つのパラメーターをバインドしようとしているのに、バインドしているのは 1 つだけであることがわかります。

一見すると、準備に閉じ括弧もありません。

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

1 つの列「名前」に挿入しますが、2 つの値をバインドします。正しい構文は次のとおりだと思います。

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