当前位置:首页 > PHP

php ajax实现增删改查

2026-01-28 23:36:44PHP

PHP AJAX 实现增删改查

数据库连接配置

创建 config.php 文件用于数据库连接:

<?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test_db';
$conn = new mysqli($host, $user, $password, $database);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

创建数据(Create)

前端 AJAX 请求:

function createData() {
    let name = document.getElementById('name').value;
    let email = document.getElementById('email').value;

    $.ajax({
        url: 'create.php',
        type: 'POST',
        data: {name: name, email: email},
        success: function(response) {
            alert('Data created successfully');
            fetchData(); // 刷新列表
        }
    });
}

后端 create.php 处理:

<?php
include 'config.php';

$name = $_POST['name'];
$email = $_POST['email'];

$sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>

读取数据(Read)

前端 AJAX 请求:

function fetchData() {
    $.ajax({
        url: 'read.php',
        type: 'GET',
        success: function(response) {
            $('#dataTable').html(response);
        }
    });
}

后端 read.php 处理:

<?php
include 'config.php';

$sql = "SELECT * FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "<tr>
                <td>".$row['id']."</td>
                <td>".$row['name']."</td>
                <td>".$row['email']."</td>
                <td>
                    <button onclick='editData(".$row['id'].")'>Edit</button>
                    <button onclick='deleteData(".$row['id'].")'>Delete</button>
                </td>
              </tr>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>

更新数据(Update)

前端 AJAX 请求:

function editData(id) {
    let name = prompt('Enter new name');
    let email = prompt('Enter new email');

    $.ajax({
        url: 'update.php',
        type: 'POST',
        data: {id: id, name: name, email: email},
        success: function(response) {
            alert('Data updated successfully');
            fetchData();
        }
    });
}

后端 update.php 处理:

<?php
include 'config.php';

$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];

$sql = "UPDATE users SET name='$name', email='$email' WHERE id=$id";
if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}
$conn->close();
?>

删除数据(Delete)

前端 AJAX 请求:

function deleteData(id) {
    if (confirm('Are you sure you want to delete this record?')) {
        $.ajax({
            url: 'delete.php',
            type: 'POST',
            data: {id: id},
            success: function(response) {
                alert('Data deleted successfully');
                fetchData();
            }
        });
    }
}

后端 delete.php 处理:

<?php
include 'config.php';

$id = $_POST['id'];

$sql = "DELETE FROM users WHERE id=$id";
if ($conn->query($sql) === TRUE) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>

前端页面整合

HTML 示例:

php ajax实现增删改查

<!DOCTYPE html>
<html>
<head>
    <title>AJAX CRUD</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <h2>Add New User</h2>
    <input type="text" id="name" placeholder="Name">
    <input type="text" id="email" placeholder="Email">
    <button onclick="createData()">Add</button>

    <h2>User List</h2>
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Email</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody id="dataTable"></tbody>
    </table>

    <script>
        $(document).ready(function() {
            fetchData();
        });
    </script>
</body>
</html>

安全注意事项

  • 使用预处理语句防止 SQL 注入
  • 验证和过滤用户输入
  • 添加 CSRF 保护
  • 实施适当的错误处理

性能优化建议

  • 使用分页处理大量数据
  • 添加加载指示器
  • 实现数据缓存
  • 优化数据库查询

标签: phpajax
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先进…

php 队列的实现

php 队列的实现

PHP 队列的实现方法 使用数据库实现队列 创建一个数据表存储队列任务,包含任务ID、状态、创建时间等字段。通过SQL语句实现任务的入队和出队操作。 // 入队操作 INSERT INTO queu…