使用PHP将数据插入MySQL数据库

时间:2013-08-19 17:33:17

标签: php html mysql forms

我正在尝试创建一个自我提交页面,该页面将为用户填写表单。该信息将存储在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>

我应该改变什么?

2 个答案:

答案 0 :(得分:3)

您的插入内容应如下所示:

$name = $_POST["name"];
$server = new PDO("mysql:dbname=test;host=localhost", "root", "root");
$stmt = $server->prepare("INSERT INTO test (name) VALUES (:name)");
$stmt->bindParam(':name', $name);
$stmt->execute();

答案 1 :(得分:0)

请像这样插入:

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

使用prepared statements调用它,它非常简单,并且可以避免sql注入。通过在每个“:col”=&gt;之后用逗号分隔,您可以在查询的多个cols上执行多个变量$ colVal,但这里不需要,只是一个提示。

您也可以进行更新。

请记住检查插入的值是否为空。