帮我写一套原生的php增删改查,并且要连接上本地的数据库
时间: 2023-06-13 17:05:13 浏览: 60
好的,以下是一套基本的原生 PHP 增删改查操作,使用 PDO 进行数据库连接。
首先需要在本地搭建一个数据库并创建一张表,这里以创建一个名为 `users` 的表为例,该表有四个字段 `id`、`name`、`age`、`email`。
```sql
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
接下来是 PHP 代码。
```php
<?php
// 数据库信息
$host = 'localhost';
$dbname = 'your_database_name';
$user = 'your_username';
$pass = 'your_password';
try {
// 连接数据库
$dbh = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
} catch (PDOException $e) {
echo '数据库连接失败: ' . $e->getMessage();
exit;
}
// 查询数据
$sql = "SELECT * FROM users";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 插入数据
$sql = "INSERT INTO users (name, age, email) VALUES (:name, :age, :email)";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':age', $age);
$stmt->bindParam(':email', $email);
$name = '张三';
$age = 18;
$email = 'zhangsan@example.com';
$stmt->execute();
// 更新数据
$sql = "UPDATE users SET name=:name, age=:age, email=:email WHERE id=:id";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':age', $age);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':id', $id);
$name = '李四';
$age = 20;
$email = 'lisi@example.com';
$id = 1;
$stmt->execute();
// 删除数据
$sql = "DELETE FROM users WHERE id=:id";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $id);
$id = 2;
$stmt->execute();
```
以上代码中,首先根据数据库信息使用 PDO 连接到数据库。然后使用 PDO 的 prepare 方法准备 SQL 语句,并使用 bindParam 方法绑定参数,然后执行 execute 方法即可执行 SQL 语句。其中查询数据使用了 fetchAll 方法获取所有数据,插入、更新、删除数据使用了 execute 方法执行 SQL 语句。
需要注意的是,这里使用了 PDO 的 prepare 方法和 bindParam 方法,可以有效防止 SQL 注入攻击。同时,由于使用了 PDO,我们可以在连接数据库时指定字符集,这样可以解决中文乱码问题。