PHP入门教程:常用代码与数据库操作
需积分: 9 57 浏览量
更新于2024-07-28
收藏 85KB PDF 举报
"这份资源是关于PHP的常用代码示例,特别适合初学者学习。它包含连接MySQL数据库、读取数据库并循环输出以及实现分页功能的相关代码片段。"
在PHP编程中,常常会涉及到与数据库的交互,如MySQL。以下是对给定代码段的详细解释:
1. 连接MySQL数据库:
```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'");
?>
```
这段代码首先尝试连接到本地的MySQL服务器,使用用户名"root"和密码"root"。如果连接失败,`die()`函数将输出错误信息并停止脚本执行。接着,它选择名为"liuyanben"的数据库。最后,设置字符集为GBK,确保数据的正确编码。
2. 读取数据库并循环输出:
```php
<?php
$sql = "select * from liuyan order by ly_id desc";
$conn = mysql_query($sql, $connec);
while ($rs = mysql_fetch_array($conn)) {
?>
循环的内容
<?php
}
?>
```
这段代码用于查询"liuyan"表中的所有记录,并按照`ly_id`字段的降序排列。`mysql_query()`函数执行SQL查询,返回结果集。`mysql_fetch_array()`函数用于遍历结果集,每次循环都会获取一行记录,然后可以在这个循环内部处理这些数据。
3. 分页功能:
分页功能通常由两个部分组成:计算总页数和生成分页链接。
- 计算总页数:
```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;
$startpos = $page * $eachpage;
$sql .= " limit $startpos, $eachpage";
}
```
`genpage`函数接收一个SQL查询字符串和每页显示的记录数(默认为2),它首先计算总记录数,然后根据每页记录数计算总页数。同时,它还计算出上一页和下一页的页码。最后,它修改原始SQL查询,添加`LIMIT`子句以获取当前页的数据。
- 显示分页链接:
```php
function showpage()
{
global $page, $pages, $prepage, $nextpage, $queryString; // param from genpagef"
...
}
```
`showpage`函数负责在页面上显示分页链接。虽然这里没有提供具体的实现,但通常会生成上一页、下一页和页码列表的HTML链接,让用户能够导航到不同页面。
请注意,上述代码使用的是已经废弃的`mysql_`扩展,对于新的项目,应该使用`mysqli_`或`PDO`扩展来与MySQL交互,以获得更好的性能和安全性。同时,为了遵循最佳实践,应该考虑使用预编译语句、参数绑定和错误处理机制来防止SQL注入等安全问题。
2010-03-20 上传
2010-12-09 上传
2011-10-07 上传
2010-01-09 上传
2021-10-08 上传
2023-03-11 上传
2020-10-23 上传
inheader
- 粉丝: 0
- 资源: 4
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器