php怎么插入数据库表
时间 : 2023-04-25 07:50:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在 PHP 中,使用 SQL 语句来插入数据到数据库表中。SQL 语句常用的是 INSERT INTO 语句,它的语法如下:

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...);

其中,table_name 为目标表的名称,column1、column2、column3 等为表的列名,VALUES 后面的 value1、value2、value3 等为需要插入的值。

下面是一个使用 PHP 插入数据到 MySQL 数据库的例子:

```php

// 连接数据库

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功

if ($conn->connect_error) {

die("连接失败:" . $conn->connect_error);

}

// 定义插入的 SQL 语句

$sql = "INSERT INTO MyGuests (firstname, lastname, email)

VALUES ('John', 'Doe', 'john@example.com')";

// 执行 SQL 语句

if ($conn->query($sql) === TRUE) {

echo "新记录插入成功";

} else {

echo "出错:" . $sql . "<br>" . $conn->error;

}

// 关闭连接

$conn->close();

在这个例子中,$servername、$username、$password、$dbname 分别是连接 MySQL 数据库所需要的服务器名、用户名、密码和数据库名。使用 mysqli 连接到 MySQL 数据库并检查连接是否成功。然后,定义一个 SQL 语句来插入数据到 MyGuests 表格中。最后,执行 SQL 语句并检查是否成功。如果执行成功,则输出 “新记录插入成功”,否则输出 “出错”。

注意,在实际使用中,我们应该使用安全函数来避免 SQL 注入攻击,也就是把用户输入的数据进行过滤和转义,以确保输入的值是安全的。例如:

```php

$firstname = mysqli_real_escape_string($conn, $_POST['firstname']);

$lastname = mysqli_real_escape_string($conn, $_POST['lastname']);

$email = mysqli_real_escape_string($conn, $_POST['email']);

$sql = "INSERT INTO MyGuests (firstname, lastname, email)

VALUES ('$firstname', '$lastname', '$email')";

在这个例子中,我们使用 mysqli_real_escape_string 函数来过滤和转义输入的值,然后再插入到 SQL 语句中。这样,就可以有效地避免 SQL 注入攻击。

在 PHP 中插入数据到数据库表可以使用 SQL 语句或预处理语句。

1. 使用 SQL 语句插入数据

使用 SQL 语句插入数据需要先连接数据库,然后使用 `INSERT INTO` 语句指定要插入的表名称以及要插入的数据。例如,如果有一个名为 `users` 的表,其包括 `id`、`name` 和 `email` 三个字段,可以使用以下代码来插入一条新纪录:

```php

// 连接数据库

$conn = mysqli_connect('localhost', 'username', 'password', 'database');

// 指定要插入的数据

$name = 'John';

$email = 'john@example.com';

// 插入数据

$sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";

mysqli_query($conn, $sql);

// 关闭数据库连接

mysqli_close($conn);

在上面的代码中,我们使用变量 `$name` 和 `$email` 表示要插入的数据。然后,我们使用 `INSERT INTO` 语句指定要插入的表名称 `users`,以及要插入的字段名称 `name` 和 `email`。最后我们使用 `mysqli_query()` 执行 SQL 语句来将数据插入到表中。需要注意的是,使用这种方式插入数据需要非常小心,因为它容易受 SQL 注入攻击。

2. 使用预处理语句插入数据

为了避免 SQL 注入攻击,我们可以使用预处理语句来插入数据到数据库表中。预处理语句可以保证我们的 SQL 语句不会因为用户输入的内容而受到攻击。

以下是一个使用预处理语句插入数据到数据库表的示例代码:

```php

// 连接数据库

$conn = mysqli_connect('localhost', 'username', 'password', 'database');

// 指定要插入的数据

$name = 'John';

$email = 'john@example.com';

// 准备预处理语句

$stmt = mysqli_prepare($conn, "INSERT INTO users (name, email) VALUES (?, ?)");

mysqli_stmt_bind_param($stmt, "ss", $name, $email);

// 执行预处理语句

mysqli_stmt_execute($stmt);

// 关闭数据库连接

mysqli_close($conn);

在上面的代码中,我们使用 `mysqli_prepare()` 函数准备了一个预处理语句,该语句使用了 `?` 占位符来代替变量。然后,我们使用 `mysqli_stmt_bind_param()` 函数将变量 `$name` 和 `$email` 绑定到占位符 `?` 上。最后,我们使用 `mysqli_stmt_execute()` 函数执行预处理语句来将数据插入到数据库表中。需要注意的是,使用预处理语句虽然比较安全,但它稍微复杂一些。

总结

以上就是使用 SQL 语句和预处理语句插入数据到数据库表的方法。在实际项目中,我们应该优先使用预处理语句来插入数据,避免被 SQL 注入攻击。