欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

教程  php基础(十八)--MySQL数据库的基本操作

PHP学习 本站 914 0评论

一、PHP访问MySQL数据库的一般步骤


     


二、PHP操作MySQL数据库的方法


1.使用mysql_connect()函数连接MySQL数据库


555.jpg


使用mysql_connect()连接mysql数据库方法如下:

<?php
$link = mysql_connect("localhost", "root", "root") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!".mysql_error());   //连接Mysql服务器
if($link){
echo "数据源连接成功!";
}
?>

 666.jpg


2.使用mysql_select_db()函数选择数据库文件


777.jpg


使用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);   //查询结果

100.jpg


4.使用mysql_fetch_array()函数从数组结果集中获取信息


101.jpg

 

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()函数从结果集中获取一行作为对象

 

102.jpg

$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()函数逐行获取结果集中的每条记录

 

103.jpg

$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()函数逐行获取结果集中的记录数


104.jpg

<?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%">&nbsp;&nbsp;页次:<?php echo $_GET[page];?>/<?php echo $page_count;?>页&nbsp;记录:<?php echo $message_count;?> 条&nbsp; </td>
<td width="63%" align="right">
<?php
/*  如果当前页不是首页  */
if($_GET[page]!=1){
/*  显示“首页”超链接  */
echo  "<a href=page_affiche.php?page=1>首页</a>&nbsp;";
/*  显示“上一页”超链接  */
echo "<a href=page_affiche.php?page=".($_GET[page]-1).">上一页</a>&nbsp;";
}
/*  如果当前页不是尾页  */
if($_GET[page]<$page_count){
/*  显示“下一页”超链接  */
echo "<a href=page_affiche.php?page=".($_GET[page]+1).">下一页</a>&nbsp;";
/*  显示“尾页”超链接  */
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."&nbsp;".$record."&nbsp;".$utits."&nbsp;每页显示&nbsp;".$this->pagesize."&nbsp;".$utits."&nbsp;第&nbsp;".$this->nowpage."&nbsp;页/共&nbsp;".$pagecount."&nbsp;页";
$str.="&nbsp;&nbsp;&nbsp;&nbsp;";
$str.="<a href=".$_SERVER['PHP_SELF']."?page=1".$anothersearchstr." class=".$class.">首页</a>";
$str.="&nbsp;";
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.="&nbsp;";
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.="&nbsp;";
$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

赞 (1) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽