帮我写一套原生的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,我们可以在连接数据库时指定字符集,这样可以解决中文乱码问题。

相关推荐

最新推荐

recommend-type

java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

下面小编就为大家带来一篇java 查询oracle数据库所有表DatabaseMetaData的用法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

基于云原生DevOps能力编排平台PDF高清无水印

开箱即⽤的敏捷项⽬管理、代码管理、⾃动化测试管理,CICD流⽔线等功能,让开发、测试、部署全流程与云原⽣底座平台⽆缝结合,进⼀步降低开发者上⼿云原⽣技术的门槛,加快云原⽣技术转型,⼤幅提升软件⽣产效率。
recommend-type

mac 原生读写NTFS

mac os针对NTFS关闭了写入权限,如果想要对NTFS的移动硬盘写入数据,需要再终端里面开启Mac os 对NTFS文件格式盘的原生读写权限。
recommend-type

年度重磅!华为云2021应用构建技术实践精选集,七大领域400页+云上开发宝典,免费下载!

围绕极简工具和技术使能,精心遴选云原生、大数据、数据库、AI、物联网等领域的典型云上场景化开发实践,跑通云上开发。
recommend-type

金融级分布式数据库白皮书

随着数字时代的来临,数据总量呈现爆发式增长,海量数据存储与访问的安全性也面临较大挑战,传统数据库架构难以满足极速增长的业务需求。而分布式数据库凭借其高可靠、高性能、低成本、平滑扩展等优势,逐步成为金融...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

可见光定位LED及其供电硬件具体型号,广角镜头和探测器,实验设计具体流程步骤,

1. 可见光定位LED型号:一般可使用5mm或3mm的普通白色LED,也可以选择专门用于定位的LED,例如OSRAM公司的SFH 4715AS或Vishay公司的VLMU3500-385-120。 2. 供电硬件型号:可以使用常见的直流电源供电,也可以选择专门的LED驱动器,例如Meanwell公司的ELG-75-C或ELG-150-C系列。 3. 广角镜头和探测器型号:一般可采用广角透镜和CMOS摄像头或光电二极管探测器,例如Omron公司的B5W-LA或Murata公司的IRS-B210ST01。 4. 实验设计流程步骤: 1)确定实验目的和研究对象,例如车辆或机器人的定位和导航。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。