如何使用带有PHP的Prepared Statement插入到mysql中

how to insert into mysql using Prepared Statement with php

本问题已经有最佳答案,请猛点这里访问。

所以我只是在学习数据库,我希望能够存储用户输入。有人能给我一个关于如何获取表单数据并使用PHP将其保存到数据库的基本示例吗?同时使表单免受SQL攻击


样本HTML

1
2
3
4
<form action="sample.php" method="POST">
<input name="sample" type="text">
<input name="submit" type="submit" value="Submit">
</form>

采样,PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

if (isset($_POST['submit'])) {

    $mysqli = new mysqli('localhost', 'user', 'password', 'mysampledb');

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s
"
, mysqli_connect_error());
        exit();
    }

    $stmt = $mysqli->prepare("INSERT INTO SampleTable VALUES (?)");
    $stmt->bind_param('s', $sample);   // bind $sample to the parameter

    $sample = isset($_POST['sample'])
              ? $_POST['sample']
              : '';

    /* execute prepared statement */
    $stmt->execute();

    printf("%d Row inserted.
"
, $stmt->affected_rows);

    /* close statement and connection */
    $stmt->close();

    /* close connection */
    $mysqli->close();
}

?>

这是一个非常基本的例子。今天许多PHP开发人员都转向了PDO。mysqli并不过时,但PDO要容易得多,imho。