AJAX 数据库学习笔记
什么是 AJAX?
AJAX(Asynchronous JavaScript and XML)即“异步的 JavaScript 和 XML”,是一种用于创建快速动态网页的技术。它利用 JavaScript 和 XML 与服务器进行异步通信,从而使网页能够在不刷新页面的情况下动态地展示数据。
AJAX 如何访问数据库?
AJAX 可以通过后端语言(如 PHP、Python、Java 等)与数据库进行交互,从而实现数据的增删改查。下面以 PHP 语言为例,演示如何通过 AJAX 实现对数据库的操作。
连接数据库
要使用 AJAX 访问数据库,首先需要在后端连接数据库。假设我们连接的是名为“mydb”的 MySQL 数据库,代码如下:
phpCopy Code$servername = "localhost";
$username = "yourusername";
$password = "yourpassword";
$dbname = "mydb";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
查询数据
接下来,我们可以通过 AJAX 向后端发送请求,从数据库中获取数据。以下是一个简单的示例,获取名为“customers”的表中所有客户的数据:
phpCopy Code$sql = "SELECT * FROM customers";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出每行数据
while($row = $result->fetch_assoc()) {
echo "Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
插入数据
如果要向数据库中插入数据,可以通过 AJAX 向后端发送请求,并将要插入的数据作为参数传递。以下是一个简单的示例,向名为“customers”的表中插入一条新的客户数据:
phpCopy Code$name = $_GET['name'];
$email = $_GET['email'];
$sql = "INSERT INTO customers (name, email) VALUES ('$name', '$email')";
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
更新数据
要更新数据库中的数据,可以通过 AJAX 向后端发送请求,并将要更新的数据和对应的条件作为参数传递。以下是一个简单的示例,将名为“John Smith”的客户的邮箱更新为“john.smith@example.com”:
phpCopy Code$name = 'John Smith';
$email = 'john.smith@example.com';
$sql = "UPDATE customers SET email='$email' WHERE name='$name'";
if ($conn->query($sql) === TRUE) {
echo "记录更新成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
删除数据
如果要从数据库中删除数据,可以通过 AJAX 向后端发送请求,并将要删除的数据和对应的条件作为参数传递。以下是一个简单的示例,删除名为“John Smith”的客户的数据:
phpCopy Code$name = 'John Smith';
$sql = "DELETE FROM customers WHERE name='$name'";
if ($conn->query($sql) === TRUE) {
echo "记录删除成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
实例
下面是一个使用 AJAX 访问数据库的实例,它可以从名为“customers”的表中获取所有客户的数据,并将其显示在网页上。同时,我们还可以通过表单向该表中插入新的客户数据。
htmlCopy Code<!DOCTYPE html>
<html>
<head>
<title>AJAX 数据库实例</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<h1>所有客户</h1>
<div id="customers"></div>
<br>
<h1>添加客户</h1>
<form>
<label for="name">姓名:</label>
<input type="text" id="name" name="name">
<br><br>
<label for="email">邮箱:</label>
<input type="text" id="email" name="email">
<br><br>
<input type="button" value="添加" onclick="addCustomer()">
</form>
<script>
// 获取所有客户
$.get("get_customers.php", function(data, status){
$("#customers").html(data);
});
// 添加客户
function addCustomer() {
var name = $("#name").val();
var email = $("#email").val();
$.get("add_customer.php?name=" + name + "&email=" + email, function(data, status){
alert(data);
});
}
</script>
</body>
</html>
其中,get_customers.php 文件用于获取所有客户的数据,代码如下:
phpCopy Code$sql = "SELECT * FROM customers";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出每行数据
while($row = $result->fetch_assoc()) {
echo "Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
add_customer.php 文件用于向“customers”表中插入新的客户数据,代码如下:
phpCopy Code$name = $_GET['name'];
$email = $_GET['email'];
$sql = "INSERT INTO customers (name, email) VALUES ('$name', '$email')";
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
以上就是一个简单的使用 AJAX 访问数据库的实例。