1. 传统的PHP获取数据库数据方法
在传统的PHP网站开发中,获取数据库数据的方法基本上有两种:
1.1 使用PDO (PHP Data Objects) 扩展
PDO 扩展是 PHP 5 开始引入的一个完成的数据库操作类库,它定义了一组面向对象的 API 用于访问各种数据库。
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from customers') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "
";
die();
}
1.2 使用MySQL扩展
MySQL 扩展是 PHP 自带的数据库扩展库,直接操作 MySQL 数据库。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
$result = mysql_query('SELECT name FROM mytable');
while ($row = mysql_fetch_assoc($result)) {
echo $row['name'];
}
2. 使用Ajax从数据库中获取数据
下面这段代码就是ajax从数据库中获取数据并传送到前台的方法。先来看一下传送数据的脚本:
$(document).ready(function() {
$.ajax ({
url: "/path/to/your/php/script.php",
type: "POST",
data: {"parameter": "value"},
success: function(data) {
// handle your data here
}
});
});
对于使用 AJAX 获取的数据,可以通过服务器端的脚本来实现查询数据库的功能。请看下面这段 PHP 脚本代码:
try {
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
exit;
}
$stmt = $pdo->prepare('SELECT * FROM mytable WHERE column_name LIKE :name');
$stmt->execute(array(':name' => '%' . $_POST['parameter'] . '%'));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
?>
注意到我们 AJAX 发送的请求数据,就是通过 POST 方法来设置的。一般来说,POST 数组中可能会包含要查询的关键字、排序方式以及每页显示的记录数等参数