一、PHP访问MySQL数据库的一般步骤
二、PHP操作MySQL数据库的方法
1.使用mysql_connect()函数连接MySQL数据库
使用mysql_connect()连接mysql数据库方法如下:
<?php $link = mysql_connect("localhost", "root", "root") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!".mysql_error()); //连接Mysql服务器 if($link){ echo "数据源连接成功!"; } ?>
2.使用mysql_select_db()函数选择数据库文件
使用mysql_select_db()函数连接mysql数据库test如下:
<?php $link = mysql_connect("localhost", "root", "root") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!".mysql_error()); //连接Mysql服务器 $db_selected=mysql_select_db("test1",$link); //$db_selected=mysql_query("use test1",$link); //也可以用才函数选择数据库 if($db_selected){ echo "数据库选择成功!"; }
mysql_query()函数是查询指令的专用函数,所有的SQL语句都通过它执行,并返回结果集。
3.使用mysql_query()函数执行SQL语句
$result=mysql_query("select * from emp",$link); //查询结果
4.使用mysql_fetch_array()函数从数组结果集中获取信息
mysql_query("set names gb2312"); //设置mysql字符集 $Arr=mysql_fetch_array($result); //获取查询结果 if($Arr==false){ //如果检索的信息不存在,则输出相应的提示信息 echo "错误提示信息"; } else{ do{ echo $Arr[ename]."<br>"; }while($Arr=mysql_fetch_array($result)); //判断循环语句 }
5.使用mysql_fetch_object()函数从结果集中获取一行作为对象
$result=mysql_query("select * from emp"); $Arr=mysql_fetch_object($result); //获取查询结果 if($Arr==false){ //如果检索的信息不存在,则输出相应的提示信息 echo "错误提示信息"; } else{ do{ echo $Arr->ename."<br>"; }while($Arr=mysql_fetch_object($result)); //判断循环语句 }
6.使用mysql_fetch_row()函数逐行获取结果集中的每条记录
$result=mysql_query("select * from emp"); $Arr=mysql_fetch_row($result); //获取查询结果 if($Arr==false){ //如果检索的信息不存在,则输出相应的提示信息 echo "错误提示信息"; } else{ do{ echo $Arr[0]." ".$Arr[1]."<br>"; //输出字段1,字段2的值 }while($Arr=mysql_fetch_row($result)); //判断循环语句 }
7.使用mysql_num_rows()函数逐行获取结果集中的记录数
<?php $result=mysql_query("select * from emp"); $num=mysql_num_rows($result); //输出记录的条数 echo $num; ?>
综合实例
//综合实例 <?php $mysql_server_name='localhost'; //改成自己的mysql数据库服务器 $mysql_username='root'; //改成自己的mysql数据库用户名 $mysql_password='root'; //改成自己的mysql数据库密码 $mysql_database='test1'; //改成自己的mysql数据库名 $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password) or die("数据库服务器连接错误".mysql_error()); //连接mysql数据库 mysql_select_db($mysql_database,$conn) or die("数据库访问错误".mysql_error());//选择mysql数据库 mysql_query("set names gb2312");//设置字符集 $sql="select * from emp"; //SQL语句 $result=mysql_query($sql);//执行mysql语句 echo mysql_result($result,0)."mysql_result函数"; //mysql_result的使用,输出结果集中一个字段的值 $Arr=mysql_fetch_array($result);//获取查询结果集 if($Arr==false){ //如果检索的信息不存在,则输出相应的提示信息 echo "错误提示信息"; } else{ do{ echo $Arr[ename]."<br>"; //输出mysql查询数据结果集 }while($Arr=mysql_fetch_array($result)); //判断循环语句 } mysql_free_result($result); //关闭结果集 mysql_close($conn); //关闭数据库连接 ?>
三、MySQL分页实例
<?php $conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error()); mysql_select_db("test1",$conn) or die("数据库访问错误".mysql_error()); mysql_query("set names gb2312"); /* $_GET[page]为当前页,如果$_GET[page]为空,则初始化为1 */ if ($_GET[page]==""){ $_GET[page]=1;} if (is_numeric($_GET[page])){ $page_size=4; //每页显示4条记录 $query="select count(*) as total from tb_affiche order by id desc"; $result=mysql_query($query); //查询符合条件的记录总条数 $message_count=mysql_result($result,0,"total");//要显示的总记录数 $page_count=ceil($message_count/$page_size); //根据记录总数除以每页显示的记录数求出所分的页数 $offset=($_GET[page]-1)*$page_size;//计算下一页从第几条数据开始循环 $sql=mysql_query("select * from tb_affiche order by id desc limit $offset, $page_size"); $row=mysql_fetch_object($sql); if(!$row){ echo "<font color='red'>暂无公告信息!</font>"; } do{ ?> <tr bgcolor="#FFFFFF"> <td style="padding-left:5px; padding-right:5px; padding-top:5px; padding-bottom:5px;"><?php echo $row->title;?></td> <td style="padding-left:5px; padding-right:5px; padding-top:5px; padding-bottom:5px;"><?php echo $row->content;?></td> </tr> <?php }while($row=mysql_fetch_object($sql)); } ?>
添加一个一行一列的表格,使用下面的代码实现翻页功能
<table width="550" border="0" cellspacing="0" cellpadding="0"> <tr> <!-- 翻页条 --> <td width="37%"> 页次:<?php echo $_GET[page];?>/<?php echo $page_count;?>页 记录:<?php echo $message_count;?> 条 </td> <td width="63%" align="right"> <?php /* 如果当前页不是首页 */ if($_GET[page]!=1){ /* 显示“首页”超链接 */ echo "<a href=page_affiche.php?page=1>首页</a> "; /* 显示“上一页”超链接 */ echo "<a href=page_affiche.php?page=".($_GET[page]-1).">上一页</a> "; } /* 如果当前页不是尾页 */ if($_GET[page]<$page_count){ /* 显示“下一页”超链接 */ echo "<a href=page_affiche.php?page=".($_GET[page]+1).">下一页</a> "; /* 显示“尾页”超链接 */ echo "<a href=page_affiche.php?page=".$page_count.">尾页</a>"; } mysql_free_result($sql); mysql_close($conn); ?> </tr> </table>
完整的实例见实例源码中的mysql_page实例
将数据库连接,操作,分页和字符串截取封装到类中
<?php /* * Created on 2016-5-1 * * 将数据库连接,操作,分页和字符串截取封装到类中 */ //数据库连接类 **********************************************************************/ class ConnDB{ var $dbtype; var $host; var $user; var $pwd; var $dbname; var $conn; function ConnDB($dbtype,$host,$user,$pwd,$dbname){//构造方法,为成员变量赋值 $this->dbtype=$dbtype; $this->host=$host; $this->user=$user; $this->pwd=$pwd; $this->dbname=$dbname; } function GetConnId(){ //实现与数据库的连接并返回连接对象 $this->conn=mysql_connect($this->host,$this->user,$this->pwd) or die("数据库服务器连接错误".mysql_error()); mysql_select_db($this->dbname,$this->conn) or die("数据库访问错误".mysql_error()); mysql_query("set names gb2312");//设置数据库的编码格式 return $this->conn;//返回连接对象 } function CloseConnId(){//定义关闭数据库的方法 $this->conn->Disconnect();//执行关闭的操作 } } //数据库管理类 **********************************************************************/ class AdminDB{ function ExecSQL($sqlstr,$conn){ //定义方法,参数为SQl语句和连接数据库返回的对象 $sqltype=strtolower(substr(trim($sqlstr),0,6));//截取SQL中的前6个字符串,并转换成小写 $rs=mysql_query($sqlstr);//执行SQL语句 if($sqltype=="select"){//判断如果SQL语句的类型为SELECT $array=mysql_fetch_array($rs);//执行该语句,获取查询结果 if(count($array)==0 || $rs==false)//判断语句是否执行成功 return false;//如果查询结果为0,或者执行失败,则返回false else return $array;//否则返回查询结果的数组 }elseif ($sqltype=="update" || $sqltype=="insert" || $sqltype=="delete"){ //判断如果SQL语句类型不为select、则执行如下操作 if($rs) return true;//执行成功返回true else return false; //是否返回false } } }
//分页类 **********************************************************************/ class SepPage{ var $rs; var $pagesize;//定义每页显示的记录数 var $nowpage;//当前页码 var $array; var $conn; var $sqlstr;//执行的SQL语句 var $total; var $pagecount;//总的记录数 function ShowDate($sqlstr,$conn,$pagesize,$nowpage){//定义方法 $arrays=array(); $array_title=array(); $array_content=array(); if(!isset($nowpage) || $nowpage=="" || $nowpage==0)//判断当前页变量值是否为空 $this->nowpage=1;//定义当前页的值 else $this->nowpage=$nowpage;//获取当前页的值 $this->pagesize=$pagesize;//定义每页输出的记录数 $this->conn=$conn;//连接数据库返回的标识 $this->sqlstr=$sqlstr;//执行的查询语句 $this->pagecount=$pagecount;//总的记录数 $this->total=$total;//总的记录数 $this->rs=mysql_query($this->sqlstr."limit ".$this->pagesize*($this->nowpage-1).",$this->pagesize",$this->conn); $this->total=mysql_num_rows($this->rs);//获取记录数 if($this->total==0){//判断如果查询结果为0,则输出如下内容 return false; }else{//否则 if(($this->total % $this->pagesize)==0){//判断如果总的记录数除以每页显示的记录数等于0 $this->pagecount=intval($this->total/$this->pagesize);//则为变量pagecount赋值 }else if($this->total<=$this->pagesize){ $this->pagecount=1;//如果查询结果小于等于每页记录数,那么为变量赋值为1 }else{ $this->pagecount=ceil($this->total/$this->pagesize);//否则输出变量值 } while($this->array=mysql_fetch_array($this->rs)){ array_push($array_title,$this->array[title]); array_push($array_content,$this->array[content]); } array_push($arrays,$array_title,$array_content); return $arrays; } } function ShowPage($contentname,$utits,$anothersearchstr,$class){ $allrs=mysql_query($this->sqlstr,$this->conn);//执行查询语句 $record=mysql_num_rows($allrs); $pagecount=ceil($record/$this->pagesize);//计算共有几页 $str.="共有".$contentname." ".$record." ".$utits." 每页显示 ".$this->pagesize." ".$utits." 第 ".$this->nowpage." 页/共 ".$pagecount." 页"; $str.=" "; $str.="<a href=".$_SERVER['PHP_SELF']."?page=1".$anothersearchstr." class=".$class.">首页</a>"; $str.=" "; if(($this->nowpage-1)<=0){ $str.="<a href=".$_SERVER['PHP_SELF']."?page=1".$anothersearchstr." class=".$class.">上一页</a>"; }else{ $str.="<a href=".$_SERVER['PHP_SELF']."?page=".($this->nowpage-1).$anothersearchstr." class=".$class.">上一页</a>"; } $str.=" "; if(($this->nowpage+1)>=$pagecount){ $str.="<a href=".$_SERVER['PHP_SELF']."?page=".$pagecount.$anothersearchstr." class=".$class.">下一页</a>"; }else{ $str.="<a href=".$_SERVER['PHP_SELF']."?page=".($this->nowpage+1).$anothersearchstr." class=".$class.">下一页</a>"; } $str.=" "; $str.="<a href=".$_SERVER['PHP_SELF']."?page=".$pagecount.$anothersearchstr." class=".$class.">尾页</a>"; if(count($this->array)==0 || $this->rs==false) return ""; else return $str; } }
//系统常用方法 **********************************************************************/ class UseFun{ function chinesesubstr($str,$start,$len) { $strlen=$start+$len; for($i=0;$i<$strlen;$i++) { if(ord(substr($str,$i,1))>0xa0) { $tmpstr.=substr($str,$i,2); $i++; } else $tmpstr.=substr($str,$i,1); } return $tmpstr; } } ?>
转载请注明: ITTXX.CN--分享互联网 » php基础(十八)--MySQL数据库的基本操作
最后更新:2019-03-14 18:22:02