PHP连接MySQL与分页实现教程
需积分: 9 31 浏览量
更新于2024-09-15
收藏 15KB TXT 举报
“PHP常用代码,包括连接MySQL数据库、读取数据库并循环输出、以及实现分页功能的示例。”
在PHP编程中,处理与数据库的交互是常见的任务,特别是使用MySQL作为后端存储时。以下将详细介绍标题和描述中提到的几个关键知识点。
1. 连接MYSQL数据库代码
PHP通过`mysql_connect`函数与MySQL服务器建立连接。在这个例子中,连接参数是"localhost"(本地主机)、"root"(用户名)和同样为"root"的密码。之后使用`mysql_select_db`函数选择要操作的数据库,这里是"liuyanben"。最后,`mysql_query("setnames 'gbk'");`设置字符集为GBK,确保数据正确编码。请注意,这些函数属于旧版的MySQL扩展,新的项目推荐使用`mysqli`或`PDO`扩展。
```php
<?php
$connec = mysql_connect("localhost", "root", "root") or die("无法连接数据库".mysql_error());
mysql_select_db("liuyanben", $connec) or die("选择数据库出错:".mysql_error());
mysql_query("setnames 'gbk'");
?>
```
2. 读取数据库并实现循环输出
使用`mysql_query`执行SQL查询,这里是一个示例,从"liuyan"表中按ly_id降序选取所有记录。然后使用`mysql_fetch_array`循环遍历结果集,每次迭代都会获取一行数据并进行处理。在循环内部,可以展示这些数据。同样,这里的`mysql_`系列函数已经过时,建议使用更新的接口。
```php
<?php
$sql = "select * from liuyan order by ly_id desc";
$conn = mysql_query($sql, $connec);
while ($rs = mysql_fetch_array($conn)) {
// 在此处处理并显示每行数据
echo "数据行: " . $rs['column_name'] . "<br>";
}
?>
```
3. 如何实现分页
分页通常包含两部分:计算页面信息和展示分页链接。首先,定义一个`genpage`函数,接收SQL查询和每页条目数作为参数。函数内部计算总页数,当前页的前后页,以及限制SQL查询以获取当前页的数据。`showpage`函数则用于显示分页链接,可以自定义显示样式。
```php
// 计算分页
function genpage(&$sql, $page_size = 2) {
global $prepage, $nextpage, $pages, $sums; // outparam
$page = $_GET["page"];
$eachpage = $page_size;
// 获取表行数
$pagesql = strstr($sql, "from");
$pagesql = "select count(*) as ids" . $pagesql;
$conn = mysql_query($pagesql) or die(mysql_error());
if ($rs = mysql_fetch_array($conn)) $sums = $rs[0];
// 计算总页数
$pages = ceil(($sums - 0.5) / $eachpage) - 1;
$pages = $pages >= 0 ? $pages : 0;
$prepage = ($page > 0) ? $page - 1 : 0;
$nextpage = ($page < $pages) ? $page + 1 : $pages;
// 设置SQL查询的LIMIT
$startpos = $page * $eachpage;
$sql .= " limit $startpos, $eachpage";
}
// 显示分页
function showpage() {
global $page, $pages, $prepage, $nextpage, $queryString; // param from genpage function
$shownum = 10 / 2;
$startpage = ($page >= $shownum) ? $page - $shownum : 1;
$endpage = ($page <= ($pages - $shownum)) ? $page + $shownum : $pages;
// 显示分页链接
for ($i = $startpage; $i <= $endpage; $i++) {
if ($i == $page) {
echo "<span>$i</span>";
} else {
echo "<a href='?page=$i'>$i</a>";
}
}
}
```
以上代码提供了PHP与MySQL交互的基本操作,但请注意,为了遵循最佳实践和安全标准,应避免使用已废弃的`mysql_`函数,改用`mysqli`或`PDO`扩展,并使用预处理语句防止SQL注入。同时,考虑使用现代的框架或ORM(对象关系映射)工具,如Laravel、Symfony或Doctrine,它们提供了更强大且安全的数据库操作功能。
2010-03-20 上传
2010-12-09 上传
2011-10-07 上传
2015-10-31 上传
2010-01-09 上传
2021-10-08 上传
2023-03-11 上传
cc13888
- 粉丝: 2
- 资源: 2
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建