您的位置:首页 > 运维架构 > 网站架构

PHP网站开发实例教程之知识点归纳2(操作数据库)

2017-03-17 14:55 555 查看
在操作数据库前先打开命令提示符,到数据库里面创建相应的数据:

//cmd创建测试数据
mysql -u root -p pwd
use itcase;
create table user_inf(
id int unsigned primary key auto_increment,
username varchar(20) not null,
password varchar(20) not null,
nickname varchar(20) default "游客"
}charset=utf8;   //在这里说明一下,mysql指定UTF8编码格式使用utf8,而不是utf-8

//添加测试数据
insert into user_inf values(1,'zhangsan','123456','张三'),(2,'lisi','234567','李四'),(3,'wangwu','345678','王五');


1.PHP获取数据库连接

<?php
//声明HTTP消息头的文档编码格式,这里设置为gbk防止中文内容乱码
header("content-type:text/html;charset=gbk");
//获取数据库连接
$link = mysql_connect('localhost','root','pwd');
//判断连接是否成功
if(!$link){
echo "数据库连接失败,程序终止";
die;
}
echo "数据库连接成功";
?>


2.设置字符集并且选择数据库

resources mysql_qurey($sql[,$link]):用于执行一条sql语句,第二个参数指定MySQL连接,如果省略,则使用上一个数据库连接
设置字符集: mysql_query('set names utf8');
选择数据库:mysql_query('use itcase');
选择数据库也可以使用另一个方法实现:bool mysql_select_db($dbname[,$link]);


3.处理resources结果集:

使用mysql_query函数返回资源类型的结果集,需要进行处理才能获取想要的结果.有下面几种方法来处理resources结果集
1>array mysql_fetch_row($res):从结果集中取出一条数据,以索引数组的形式返回,当循环执行时,会自动读取下一条数据,res的数据指针会自动往后移动
2>array mysql_fetch_array($res[,$type]):可以指定返索引数组还是关联数组,第二个参数:MYSQL_BOTH(default)/MYSQL_NUM(索引数组)/MYSQL_ASSOC(关联数组)
3>array mysql_fetch_assoc($res):从结果集中取出一条数据,以关联数组的形式返回,...
4>array mysql_fetch_object($res):读取一条数据并以对象的形式返回,因此取出这个数据的指定列的值只能通过对象.字段名来获取

//举例
$link = mysql_connect('localhost','root','pwd');
if(!$link){
echo "数据库连接失败";
die;
}
//取出的是中文,设置gbk防止中文乱码
mysql_query('set names gbk');
mysql_select_db('itcast');
//获取结果集
$result = mysql_query('select * from user_inf',$link);
//输出每一个nickname,这里使用mysql_fetch_assoc获取关联数组字符集
while($row = mysql_fetch_assoc($result)){
echo "nickname:" . $row['nickname']."<br />";
}


4.释放资源:

1.mysql_free_result($result):释放结果集的资源
2.mysql_close([$link]):释放数据库$link的连接,如果没有指定则释放上一个数据库连接的操作
通常来说是不需要使用mysql_close的,因为一打开的非持久数据库连接会在脚本执行完毕后自动关闭连接并释放资源的


5.转义sql语句中的特殊字符:

有时候用户输入的sql语句包含了一些大于小于号之类的特殊字符,如果没有对它进行任何操作的话就会在html中以标签之类的形式显示,因此需要对这些特殊字符进行转义
mysql_real_escape_string($sql,$link):转义sql语句中的特殊字符


6.数据库的分页显示:

使用limit语句可以进行分页显示limit start,len;指定从索引start开始查找(显示)len个长度的数据
其中start可以省略,默认为从第一条数据开始显示,len不能省略,表示显示的最多的数据长度
//示例
...
//保存当前访问的页码,可以通过点击指定页面时传入page参数即可,这里测试为第一页
#page = 1;
//指定每页需要显示的最大数据,这里假设为每页最多显示2条数据
$len = 2;
//根据$page和$len求得从数据库里面选出的数据的开始位置$limit
$limit = ($page - 1) * $len;
$sql = 'select * from user_inf limit '.$limit.',2';
//自定义方式显示数据,这里直接输出第一页要显示的数据
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
foreach($row as $key=>$value)){
echo $key."=>".$value."  ";
}
echo "<br />";
}
//释放result结果集资源
mysql_free_result($result);
...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: