代码改变世界

PHP5与MySQL数据库操作

2010-03-19 11:04  夜雨瞳  阅读(906)  评论(2编辑  收藏  举报

 1 建立数据库表:

代码
create database club;
create table member(
id 
int(11not null auto_increment,
no 
varchar(5not null,
name 
varchar(10not null,
age 
int(2not null,
level varchar(10not null,
sex 
tinyint(1not null,
date 
datetime not null,
primary key(id)
)engine
=MyISAM default charset=GB2312;

insert into member(id,no,name,age,level,sex,date)values
(
1,'A001','wanxia',30,'hj',1,'2008-04-02 00:00:00'),
(
2,'C022','liyan',29,'zs',1,'2007-05-31 00:00:00'),
(
3,'A006','zhangyan',36,'hj',1,'2007-06-20 00:00:00'),
(
4,'B052','luanying',42,'bj',1,'2007-02-12 00:00:00'),
(
5,'A007','duxiang',26,'hj',2,'2008-03-26 00:00:00'),
(
6,'C060','liuyu',38,'zs',1,'2008-10-16 00:00:00');

 

 2 读取数据

 2.1 建立01.php

代码
<html>
<head>
    
<meta http-equiv="Content-Type" content="text/html;charset=GB2312"/>
    
<title>会员列表</title>
</head>
<?php 
$link=mysql_connect("localhost","root","123");                    //连接mysql服务器
$db=mysql_select_db("club");                    //选择数据库
mysql_query("set names utf8",$link);                    //设定编码方式
$sql="Select * from member";
$result=mysql_query($sql,$link);                //执行select查询
$num=mysql_num_rows($result);                    //获取记录查询
?>

<body>
<h1>健身俱乐部 会员名册</h1>
<br />
点击姓名可查看该会员详细资料,现有会员
<?php  echo $num ?>人。
<br />

<?php 
if($num>0)
{
?>
    
<table border="1" cellpadding="1" cellspacing="1">
    
<tr>
    
<td>序号</td>
    
<td>姓名</td>
    
<td>性别</td>
    
</tr>
    
<?php 
        
while($row=mysql_fetch_array($result))
        {
            
echo "<tr><td>".$row['id']."</td><td><a href=member.php?name="
            
.$row['name'].">".$row['name']."</a></td><td>"
            
.($row['sex']==1?"":"")."</td></tr>";
        }
    
?>
    
</table>
<?php 
}
else
{
    
echo "俱乐部尚未发展会员。";
}
?>
</body>
</html>

 

 2.2 建立member.php

代码
<html>
<head>
    
<meta http-equiv="Content-Type" content="text/html;charset=GB2312"/>
    
<title>会员详细资料</title>
</head>
<?php 
$link=mysql_connect("localhost","root","123");                    //连接mysql服务器
$db=mysql_select_db("club");                    //选择数据库
mysql_query("set names utf8",$link);                    //设定编码方式
$sql="select no,name,sex,age,level,date_format(date,'%Y-%c-%d') as join_date from member "
    
."where name='".trim($_GET['name'])."'";
$result=mysql_query($sql,$link);                //执行在select查询
?>
<body>
<h1>健身俱乐部 会员详细资料</h1>
<?php 
if($row=mysql_fetch_array($result))
{
    
echo "编号:".$row['no']."<br />";
    
echo "姓名:".$row['name']."<br />";
    
echo "性别:".($row['sex']==1?"":"")."<br />";
    
echo "年龄:".$row['age']."<br />";
    
echo "级别:".$row['level']."<br />";
    
echo "加入:".$row['join_date']."<br />";
}
?>
</body>
</html>

 3 修改数据

 3.1 建立level.php(修改数据)

代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312" />
<title>俱乐部优惠活动</title>
</head>
<body>
<h1>俱乐部会员统计表</h1>
<?php 
$link=mysql_connect("localhost","root","123");                    //连接mysql服务器
$db=mysql_select_db("club");                    //选择数据库

mysql_query("set name utf8",$link);                //设定编码方式
$sql="Select level,count(*) as num from member group by level";
$result=mysql_query($sql,$link);                //执行select查询

while($row=mysql_fetch_array($result))
{
    
switch($row['level']){
    
case 'bj':
        
echo "等级:白金会员 &nbsp;&nbsp;&nbsp;&nbsp;人数:".$row['num']."<br />";    
        
break;    
    
case 'hj':
        
echo "等级:黄金会员 &nbsp;&nbsp;&nbsp;&nbsp;人数:".$row['num']."<br />";    
        
break;
    
default:
        
echo "等级:钻石会员 &nbsp;&nbsp;&nbsp;&nbsp;人数:".$row['num']."<br />";    
    }
}
?>
<form action="up_level.php" name="level" method="post">
会员优惠升级:从
<select name="old_level">
<option value="hj">黄金会员</option>
<option value="bj">白金会员</option>
</select>
升级至
<select name="new_level">
<option value="bj">白金会员</option>
<option value="zs">钻石会员</option>
</select>
<input type="submit" value="确定"/>
</form>
</body>
</html>

 

 3.2 建立up_level.php

代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312" />
<title>俱乐部优惠活动</title>
</head>
<body>
<?php 
$link=mysql_connect("localhost","root","123");                    //连接mysql服务器
$db=mysql_select_db("club");                    //选择数据库

mysql_query("set name utf8",$link);                //设定编码方式
$sql="update member set level='".trim($_POST['new_level'])
    
."' where level='".trim($_POST['old_level'])."'";
$result=mysql_query($sql,$link);                //执行select查询
echo mysql_affected_rows($link)."人 从";
    
switch(trim($_POST['old_level'])){
    
case 'bj':
        
echo " 白金会员  "    ;
        
break;    
    
case 'hj':
        
echo " 黄金会员  ";    
        
break;
    
default:
        
echo " 钻石会员  ";    
    }

echo "成功升级到";
    
switch(trim($_POST['new_level'])){
    
case 'bj':
        
echo " 白金会员  "    ;
        
break;    
    
case 'hj':
        
echo " 黄金会员  ";    
        
break;
    
default:
        
echo " 钻石会员  ";    
    }
?>
</body>
</html>

 

 

 4 添加数据

 4.1 建立add_member.php

代码
<html>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312"/>
<title>新增会员</title>
<body>
<h1>新加入会员</h1>
<form action="newmember.php" method="post" name="add_member">
    编号:
<input type="text" name="no" width="40"/><br />
    姓名:
<input type="text" name="name" width="40"/><br />
    性别:
    
<input type="radio" name="sex" value="1" />
    
<input type="radio" name="sex" value="2" /><br />
    年龄:
<input type="text" name="age" width="40" /><br />
    级别:
    
<select name="level">
    
<option value="hj">黄金会员</option>
    
<option value="bj">白金会员</option>
    
<option value="zs">钻石会员</option>
    
</select><br />
    
<input type="submit" value="确定" />
</form>
</body>
</html>

 

 4.2 建立newmember.php

代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312" />
<title>添加会员</title>
</head>
<body>
<?php 
$link=mysql_connect("localhost","root","123");                //连接mysql服务器
$db=mysql_select_db("club");                        //选择数据库

mysql_query("set names GB2312",$link);                    //设定编码方式 
$sql="Insert member(no,name,sex,age,level,date) values('"
    
.trim($_POST['no'])."','".trim($_POST['name'])."','"
    
.trim($_POST['sex'])."','".trim($_POST['age'])."','"
    
.trim($_POST['level'])."',now())";
$result=mysql_query($sql,$link);                    //执行select查询
$m_id=mysql_insert_id($link);                        //得到新插入会员记录的id

if(trim($_POST['level'])=="hj")                        //判断新会员优惠
{
    
$sql="Update member set level='bj' where id='".$m_id."'";
    
$result=mysql_query($sql,$link);                //执行会员升级优惠
    $text="已享受优惠升级至白金会员。";
}
$sql="Select *,date_format(date,'%Y-%c-%d') as join_date from member "
    
."where id='".$m_id."'";
$result=mysql_query($sql,$link);                    //执行select查询
if($row=mysql_fetch_array($result))
{
    
echo "新会员资料:<br />";
    
echo "编号:".$row['no']."<br />";
    
echo "姓名:".$row['name']."<br />";
    
echo "性别:".($row['sex']==1?"":""."<br />");
    
echo "年龄:".$row['age']."<br />";
    
echo "级别:".$row['level']."<br />";
    
echo "加入:".$row['join_date']."<br />";
}
echo "新会员".$row['name']."添加成功".$text;
?>
</body>
</html>

 

 

 5 创建类数据库连接

 5.1 建立cls_mysql.php类文件

代码
<?php
class cls_mysql
{
    
protected $link_id;
    
function __construct($dbhost,$dbuser,$dbpw,$dbname='',$charset='GB2312')
    {
        
if(!($this->link_id=mysql_connect($dbhost,$dbuser,$dbpw)))
        {
            
$this->ErrorMsg("Can't pConnect MySQL Server($dbhost)!");
        }    
    
        
mysql_query("SET NAMES ".$charset,$this->link_id);
        
if($dbname)
        {
            
if(mysql_select_db($dbname,$this->link_id)===false)
            {
                
$this->ErrorMsg("Can't slect MYSQL database($dbname)!");
                
return false;
            }
            
else
            {
                
return true;
            }
        }
    }
    
    
public function select_database($dbname)
    {
        
return mysql_select_db($dbname,$this->link_id);
    }
    
    
public function fetch_array($query,$result_type=MYSQL_ASSOC)
    {
        
return mysql_fetch_array($query,$result_type);
    }
    
    
public function query($sql)
    {
        
return mysql_query($sql,$this->link_id);
    }
    
    
public function affected_rows()
    {
        
return mysql_affected_rows($this->link_id);
    }
    
    
public function num_rows($query)
    {
        
return mysql_num_rows($query);
    }
    
    
public function insert_id()
    {
        return_insert_id(
$this->link_id);
    }
    
    
public function selectLimit($sql,$num,$start=0)
    {
        
if($start==0)
        {
            
$sql.=' LIMIT '.$num;
        }
        
else
        {
            
$sql.=' LIMIT '.$start.''.$num;
        }
        
        
return $this->query($sql);
    }
    
    
public function getOne($sql,$limited=false)
    {
        
if($limited=true)
        {
            
$sql=trim($sql.' LIMIT 1');
        }
        
$res=$this->query($sql);
        
if($res!=false)
        {
            
$row=mysql_fetch_row($res);
            
return $row[0];
        }
        
else
        {
            
return false;
        }
    }
    
    
public function getAll($sql)
    {
        
$res=$this->query($sql);
        
if($res!==false)
        {
            
$arr=array();
            
while($row=mysql_fetch_assoc($res))
            {
                
$arr[]=$row;
            }
            
return $arr;
        }
        
else
        {
            
return false;
        }
    }
    
    
function ErrorMsg($message='',$sql='')
    {
        
if($message)
        {
            
echo "<b> error info</b>:$message\n\n";
        }
        
else
        {
            
echo "<b>MySQL server error report:";
            
print_r($this->error_message);
        }
        
exit;
    }
    
}
?>

 

 5.2 建立test.php

代码
<?php 
include("cls_mysql.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312" />
<title>Mysql类库测试</title>
</head>
<body>
<?php 
$sql="Select * from member";
$db=new cls_mysql('localhost','root','123','club','GB2312');
$result=$db->selectLimit($sql,'3');                    //从数据库中返回3个会员资料
if($result)
{
    
while($row=$db->fetch_array($result))
    {
        
echo "会员编号: " .$row['no'].",姓名:".$row['name']."<br />";
    }
}
?>
</body>
</html>

 

 6 总结

 6.1 mysql_connect():建立与MySQL服务器的连接

 6.2 mysql_select_db():选择数据库

 6.3 mysql_query():执行数据库查询

 6.4 mysql_fetch_array():获取数据库记录

 6.5 mysql_num_rows():获取查询得到的记录数

 6.6 mysql_affected_rows():最近一次操作影响到的行数

 6.7 mysql_insert_id():最近一次插入记录的ID值