帮我用PHP写一个增删改查的源码程序,前后端分离

时间: 2023-10-30 11:06:04 浏览: 43
当可以!以下是一个简单的增删改查的源码程序,使用PHP语言和MySQL数据库,采用前后端分离的方式。 后端代码: 连接数据库: ```php <?php $hostname = "localhost"; // 数据库服务器地址 $username = "用户名"; // 数据库用户名 $password = "密码"; // 数据库密码 $database = "数据库名"; // 数据库名 // 创建连接 $conn = mysqli_connect($hostname, $username, $password, $database); // 检查连接是否成功 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } ?> ``` 增加数据: ```php <?php // 获取请求的JSON数据 $data = json_decode(file_get_contents('php://input'), true); // 获取表单数据 $name = $data['name']; $email = $data['email']; $phone = $data['phone']; // SQL 插入语句 $sql = "INSERT INTO contacts (name, email, phone) VALUES ('$name', '$email', '$phone')"; if (mysqli_query($conn, $sql)) { $response = array('success' => true, 'message' => '数据添加成功!'); echo json_encode($response); } else { $response = array('success' => false, 'message' => '数据添加失败!'); echo json_encode($response); } mysqli_close($conn); ?> ``` 删除数据: ```php <?php // 获取要删除的数据的 ID $id = $_GET['id']; // SQL 删除语句 $sql = "DELETE FROM contacts WHERE id=$id"; if (mysqli_query($conn, $sql)) { $response = array('success' => true, 'message' => '数据删除成功!'); echo json_encode($response); } else { $response = array('success' => false, 'message' => '数据删除失败!'); echo json_encode($response); } mysqli_close($conn); ?> ``` 修改数据: ```php <?php // 获取请求的JSON数据 $data = json_decode(file_get_contents('php://input'), true); // 获取表单数据和要修改的数据的 ID $id = $data['id']; $name = $data['name']; $email = $data['email']; $phone = $data['phone']; // SQL 更新语句 $sql = "UPDATE contacts SET name='$name', email='$email', phone='$phone' WHERE id=$id"; if (mysqli_query($conn, $sql)) { $response = array('success' => true, 'message' => '数据更新成功!'); echo json_encode($response); } else { $response = array('success' => false, 'message' => '数据更新失败!'); echo json_encode($response); } mysqli_close($conn); ?> ``` 查询数据: ```php <?php // SQL 查询语句 $sql = "SELECT * FROM contacts"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出每行数据 $rows = array(); while($row = mysqli_fetch_assoc($result)) { $rows[] = $row; } echo json_encode($rows); } else { $response = array('success' => false, 'message' => '没有数据!'); echo json_encode($response); } mysqli_close($conn); ?> ``` 前端代码: HTML: ```html <!DOCTYPE html> <html> <head> <title>增删改查</title> </head> <body> <h1>联系人列表</h1> <table> <thead> <tr> <th>ID</th> <th>姓名</th> <th>电子邮件</th> <th>电话</th> <th>操作</th> </tr> </thead> <tbody id="tableBody"></tbody> </table> <h1>添加联系人</h1> <form id="addForm"> <label for="name">姓名</label> <input type="text" name="name" id="name"> <br> <label for="email">电子邮件</label> <input type="text" name="email" id="email"> <br> <label for="phone">电话</label> <input type="text" name="phone" id="phone"> <br> <button type="submit">添加</button> </form> <h1>修改联系人</h1> <form id="editForm"> <input type="hidden" name="id" id="editId"> <label for="editName">姓名</label> <input type="text" name="name" id="editName"> <br> <label for="editEmail">电子邮件</label> <input type="text" name="email" id="editEmail"> <br> <label for="editPhone">电话</label> <input type="text" name="phone" id="editPhone"> <br> <button type="submit">保存</button> </form> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script> var app = new Vue({ el: '#app', data: { contacts: [], editContact: null }, mounted: function() { this.refreshContacts(); }, methods: { refreshContacts: function() { axios.get('api/contacts.php') .then(function(response) { app.contacts = response.data; }) .catch(function(error) { console.log(error); }); }, addContact: function() { var name = document.getElementById('name').value; var email = document.getElementById('email').value; var phone = document.getElementById('phone').value; axios.post('api/add-contact.php', { name: name, email: email, phone: phone }) .then(function(response) { alert(response.data.message); app.refreshContacts(); document.getElementById('addForm').reset(); }) .catch(function(error) { console.log(error); }); }, deleteContact: function(id) { if (confirm('确定要删除吗?')) { axios.get('api/delete-contact.php?id=' + id) .then(function(response) { alert(response.data.message); app.refreshContacts(); }) .catch(function(error) { console.log(error); }); } }, editContactForm: function(contact) { this.editContact = contact; document.getElementById('editId').value = contact.id; document.getElementById('editName').value = contact.name; document.getElementById('editEmail').value = contact.email; document.getElementById('editPhone').value = contact.phone; }, editContactSubmit: function() { var id = document.getElementById('editId').value; var name = document.getElementById('editName').value; var email = document.getElementById('editEmail').value; var phone = document.getElementById('editPhone').value; axios.post('api/edit-contact.php', { id: id, name: name, email: email, phone: phone }) .then(function(response) { alert(response.data.message); app.refreshContacts(); app.editContact = null; document.getElementById('editForm').reset(); }) .catch(function(error) { console.log(error); }); } } }); </script> </body> </html> ``` 注意:需要使用Vue.js和Axios.js库。 希望这个简单的增删改查的源码程序能够帮助到你!

相关推荐

最新推荐

recommend-type

php+mysql实现简单的增删改查功能

php $con = mysql_connect("localhost:3306","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM user"); echo...
recommend-type

c#操作xml帮助类分享(xml增删改查)

c#操作xml帮助类XMLHelper源码分享,实现对XML文档的创建,及节点和属性的增、删、改、查
recommend-type

前后端分离 Spring Boot + Vue 开发网易云&QQ音乐(附源码).docx

java系前后端分离 Spring Boot + Vue 开发网易云&QQ音乐(附源码),最新的前后端分离,亲自测试没有问题
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

如何用python编写api接口

在Python中编写API接口可以使用多种框架,其中比较流行的有Flask和Django。这里以Flask框架为例,简单介绍如何编写API接口。 1. 安装Flask框架 使用pip命令安装Flask框架: ``` pip install flask ``` 2. 编写API接口 创建一个Python文件,例如app.py,编写以下代码: ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/hello', methods=['GET']) def hello():
recommend-type

JSBSim Reference Manual

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

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这