0

ユーザーが入力するフォームを作成する自己送信ページを作成しようとしています。情報は MySQL データベースに保存されます。フォームは機能しているようですが、何らかの理由でフォームからデータベースに情報を挿入できません。ここに私が持っているものがあります:

<!DOCTYPE html>
<html>
    <head>
        <title>MySQL Test</title>
    </head>
    <body>
        <h1>MySQL Test</h1>
        <?php

        if($_SERVER["REQUEST_METHOD"] == "GET") {
            ?>
            <form action="" method="post">
                <input type="text" name="name" placeholder="Name" /><br />
                <input type="submit" value="Send" />
            </form>
            <?php
        } else if ($_SERVER["REQUEST_METHOD"] == "POST") {
            $name = $_POST["name"];
            $server = new PDO("mysql:dbname=test;host=localhost", "root", "root");
            $server->execute("INSERT INTO test ('name') VALUES $name;");
        }

        ?>
    </body>
</html>

何を変更すればよいですか?

4

2 に答える 2

0

次のように挿入してください。

$name = "john";
$query = "INSERT INTO test(col) VALUES(:name);";
$statement = $server->prepare($query);
$statement->execute(array(":name" => $name));

これは準備済みステートメントを使用して呼び出されます。非常に簡単で、SQL インジェクションを回避できます。各 ":col" => $colVal の後にコンマで区切ることにより、クエリの複数の列で複数の変数を実行できますが、ここでは必要ありません。ヒントだけです。

更新のためにそれを行うこともできます。

挿入される値が空かどうかを確認してください。

于 2013-08-19T17:40:23.037 に答える