PHP AJAX - 访问数据库

AJAX 用于创建交互性更强的应用程序

数据库( MySQL) 可以提供数据存储服务

PHP 可以为 AJAX 提供后端支持,连接到 MySQL 数据库返回数据查询结果

PHP AJAX 数据库 - 查询客户

你可以在下面的选择框选择一个公司,然后查询该公司相关信息

这个范例演示了网页如何通过 AJAX 从数据库读取信息


选择对应选项,用户信息会显示在这……

编程开发

我们可以从上面的范例看到我们实现的小应用功能如何

现在,我们就一步一步来实现这个小应用

1. 首先准备数据表

首先在本地的 MySQL 中新建一个数据库 twle 然后再新建一个表 sites,表中的数据如下

mysql> use twle;
Query OK, 0 rows affected (0.01 sec)

mysql> select * from sites;
+----+-----------+----------------------+--------+-------+
| id | name      | url                  | alexa  |country|
+----+-----------+----------------------+--------+-------+
| 1  | 百度    | https://www.baidu.cm/   | 1      | CN    |
| 2  | 淘宝    | https://www.taobao.com/ | 3      | CN    |
| 3  | 简单教程 | https://www.twle.cn/    | 100000 | CN    |
| 4  | 微博    | http://weibo.com/       | 8      | CN    |
| 5  | 腾讯    | https://www.qq.com/     | 2      | CN    |
+----+-----------+-------------------------+--------+-----+
5 rows in set (0.01 sec)

mysql> 

你可以点击 sites.sql 下载我们要用到的 site.sql 文件

2. 创建前端页面

新建一个 PHP 文件 php_ajax_db_form.php 文件并输入以下内容

在这个页面中,当用户在下拉列表中选择某位用户时,会触发 onchange 事件运行名为 "showSite()" 的函数

php_ajax_db_form.php

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>简单编程(twle.cn)</title> 
<style>
  table,th,td {border:1px solid #dddddd;padding:5px 10px;border-collapse: collapse;}
</style>
<script>
function showSite(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }  
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","/php_ajax_db.php?q="+str,true);
xmlhttp.send();
}
</script>
<p>PHP 基础教程 - 简单教程(www.twle.cn)</p>
<form action=""> 
<select name="users" onchange="showSite(this.value)">
<option value="">选择一个网站:</option>
<option value="1">百度</option>
<option value="2">淘宝</option>
<option value="3">简单教程</option>
<option value="4">微博</option>
<option value="5">腾讯</option>
</select>
</form>
<br><div id="txtHint">选择对应选项,用户信息会显示在这……</div>

showSite() 函数会执行以下步骤:

  1. 检查是否有网站被选择
  2. 创建 XMLHttpRequest 对象
  3. 创建在服务器响应就绪时执行的函数
  4. 向服务器上的文件发送请求
  5. 请注意添加到 URL 末端的参数(q)(包含下拉列表的内容)

后端 PHP 查询数据库

我们的前端页面通过 AJAX 调用 php_ajax_db.php 文件来查询站点信息

php_ajax_db.php 会访问本地的 MySQL 数据库并查询相关站点的信息,然后返回 HTML table 作为结果

我们假设 MySQL 数据服务器信息如下

属性
host 127.0.0.1
user root
password ""
database twle

php_ajax_db.php

<?php
$q = isset($_GET["q"]) ? intval($_GET["q"]) : '';

if(empty($q)) {
    echo '请选择一个网站';
    exit;
}


$db = new PDO('mysql:host=127.0.0.1;dbname=twle;', 'root', '',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8';"));

if ( !$db )
{
    die('Could not connect to mysql 127.0.0.1  ');
}

$id = intval($q);

$sql = "SELECT * FROM sites WHERE id = ?";


$stmt = $db->prepare($sql);
$stmt->execute(array($id));

$rs = $stmt->fetch(PDO::FETCH_ASSOC);

if ( empty($rs))
{
    echo 'not found';
    exit;
}

echo "<table>
<tr>
<th>ID</th>
<th>网站名</th>
<th>网站 URL</th>
<th>Alexa 排名</th>
<th>国家</th>
</tr>";

echo "<tr>";
echo "<td>" . $rs['id'] . "</td>";
echo "<td>" . $rs['name'] . "</td>";
echo "<td>" . $rs['url'] . "</td>";
echo "<td>" . $rs['alexa'] . "</td>";
echo "<td>" . $rs['country'] . "</td>";
echo "</tr>";
echo "</table>";

当查询从 JavaScript 发送到 PHP 文件时

  1. PHP 打开一个到 MySQL 数据库的连接
  2. 找到选中的用户
  3. 创建 HTML 表格,填充数据,并发送回 "txtHint" 占位符

演示

运行上面的 PHP 范例,演示如下

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.