美文网首页
PHP全栈学习笔记5

PHP全栈学习笔记5

作者: 梅先森森森森森森 | 来源:发表于2019-09-26 18:21 被阅读0次
image

php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的,要了解如何操作mysql数据库,数据表的方法。

什么是数据库,数据库能做什么,数据库有什么好处,数据库的基础必备技术,备份和恢复的方法。

image image

mysql的好处,功能强大,支持跨平台,运行速度快,支持面向对象,成本低,支持各种开发语言,数据库存储容量大,支持强大的内置函数。

启动MySQL服务器

net start mysql

连接数据库:

mysql  –u root   –h127.0.0.1   –p password

断开MySQL服务器:

quit;

停止MySQL服务器:

 net stop mysql;

mysqladmin –uroot shutdown –proot

数据库的操作:

image image
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名
[(create_definition,…)][table_options] [select_statement]

temporary 表示创建一个临时表
if not exists 表示表是否已经存在
create_definition 表的一些特性
select_statement 快速创建表

col_name  type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
           [PRIMARY KEY ] [reference_definition]

create table table_name (列名1 属性,列名2 属性…);

col_name 字段名
type 字段类型
not null | null 指出该列是否允许控制
default 表示默认值
auto_increment 表示是否自动编号
primary key 表示是否为主键
一个表只能有一个主键,如果表中没有主键,mysql会返回第一个没有任何null列的unique键,作为主键。
reference_definition 为字段添加注解

create table tb_admin (
id int auto_increment primary key,
user varchar(30) not null,
password varchar(30) not null,
createtime datetime
);

查看表结构:

SHOW  [FULL] COLUMNS  FROM 数据表名 [FROM 数据库名];

DESCRIBE 数据表名;

修改表结构:

ALTER[IGNORE] TABLE 数据表名 alter_spec[,alter_spec]… 

image

重命名表:

RENAME TABLE 数据表名1 To 数据表名2 

删除表:

DROP TABLE 数据表名;

drop table if exists 数据表名;

数据库的操作:插入已解决insert,查询select,修改update,删除记录delete。

插入记录insert

insert  into 数据表名(column_name,column_name2, … ) values (value1, value2, … )

查询数据库:

select selection_llist from 数据表名 where primary_constraint group by grouping_columns order by sorting_columns having secondary_constraint limit count

表1.字段=表2.字段 and 其他查询条件

select 字段名 from 表1,表2…… where 表1.字段=表2.字段 and 其他查询条件

update 数据表名set column_name = new_value1,column_name2 = new_value2, …where condition

delete from 数据表名 where condition

数据库备份和恢复:

使用MYSQLDUMP命令,进行数据的备份。

mysql -uroot –proot db_database <F:\db_database.txt”

image image image image image image

php操作数据库

mysql_connect()函数连接mysql服务器

mysql_select_db()函数选择数据库

mysql_query()函数执行sql语句

mysql_fetch_array()函数从数组结果集中获取信息

mysql_fetch_row()函数逐行获取结果集中的每条记录

mysql_num_rows()函数获取查询结果集中的记录数

insert动态添加

select语句查询

update动态修改

delete动态删除

MySQL是一款广受欢迎的数据库
开源的半商业软件
市场占有率高
PHP具有强大的数据库支持能力

image

查询,显示,插入,更新,删除

关闭MySQL服务器
每使用一次mysql_connect()或mysql_query()函数,都会消耗系统资源。
使用mysql_close()函数关闭与MySQL服务器的连接,以节省系统资源。

mysql_close($Link); 

image
<?php
$link = mysql_connect("localhost", "root", "root") or die("用户名密码有误!".mysql_error());   //连接Mysql服务器
if($link){ 
echo "数据源连接成功!";
}
?>

// mysql_connect('hostname','username','password');

<?php
$link = mysql_connect("localhost", "root", "root") or die("用户名密码有误!".mysql_error());   //连接Mysql服务器
$db_selected=mysql_select_db("db_database1",$link);
//$db_selected=mysql_query("use db_database1",$link);
if($db_selected){
echo "数据库选择成功!";
}
?>

// mysql_select_db ( string数据库名[,resource link_identifier] ) 

// mysql_query("use数据库名"[,resource link_identifier]);

<?php
$db = array (
        'server' => 'localhost',
        'port' => '3306',
        'username' => 'root',
        'password' => 'root',
        'database' => 'dashu' 
);
$conn = @mysql_connect($db['server'].':'.$db['port'],$db['username'],$db['password']);
if (! $conn) {
    echo "服务器不能连!" . mysql_error();
} else {
    // 声明字符集
    mysql_set_charset('utf8', $conn);
    // 选择数据库
    mysql_select_db($db['database'], $conn);
}

<?php
$link = mysql_connect("localhost", "root", "root") or die("数据库连接失败".mysql_error());
mysql_select_db("db_database",$link);
mysql_query("set names gb2312");
$sql=mysql_query("select * from tb_book");
$info= mysql_fetch_array($sql);

if($_POST[Submit] == "查询"){
 $tet_book = $POST[txt_book];
 $sql = mysql_query("select * from tb_book where bookname like '%".trim($txt_book)."%' ");
 $info=mysql_fetch_array($sql);
}

mysql_fetch_array()函数从数组结果集中获取信息:

array mysql_fetch_array ( resource result [, int result_type] )

mysql_fetch_object()函数从结果集中获取一行作为对象

object  mysql_fetch_object ( resource result )

对象
<?php echo $info -> id; ?></td>
<?php echo $info -> issuDate; ?></td>
<?php echo $info -> first_name; ?></td>

数组
<?php echo $info[id]; ?></td>

do{

}while($info=mysql_fetch_array($sql));

mysql_fetch_row()函数逐行获取结果集中的每条记录

array mysql_fetch_row ( resource result )

image

mysql_num_rows()函数获取查询结果集中的记录数

int mysql_num_rows ( resource result )

<?php $nums = mysql_num_rows($sql); echo $nums; ?>

PHP操作MySQL数据库

<?php
 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; 
}
?>

实例:

onClick="return check(form1);"

<script language="javascript">
function check(form){
    if(form.txt_title.value==""){
        alert("请输入公告标题!");form.txt_title.focus();return false;
    }
    if(form.txt_content.value==""){
        alert("请输入公告内容!");form.txt_content.focus();return false;
    }
form.submit();
}
</script>

<?php
    $conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error());
    mysql_select_db("db_database18",$conn) or die("数据库访问错误".mysql_error());
    mysql_query("set names gb2312");
    $title=$_POST[txt_title];
    $content=$_POST[txt_content];
    $createtime=date("Y-m-d H:i:s");
    $sql=mysql_query("insert into tb_affiche(title,content,createtime)values('$title','$content','$createtime')");
    echo "<script>alert('公告信息添加成功!');window.location.href='add_affiche.php';</script>";
    mysql_free_result($sql);
    mysql_close($conn);
?>

image
<script language="javascript">
function check(form){
    if(form.txt_keyword.value==""){
        alert("请输入查询关键字!");form.txt_keyword.focus();return false;
    }
form.submit();
}
</script>

image
<?php
 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; 
}
?>

update语句动态

<script language="javascript">
function check(form){
    if(form.txt_title.value==""){
        alert("公告标题不能为空!");form.txt_title.focus();return false;
    }
    if(form.txt_content.value==""){
        alert("公告内容不能为空!");form.txt_content.focus();return false;
    }
form.submit();
}
</script>

<?php 
$conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error());
mysql_select_db("db_database18",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set names gb2312");
$id=$_GET[id];
$sql=mysql_query("select * from tb_affiche where id=$id");
$row=mysql_fetch_object($sql);
?>

<form name="form1" method="post" action="check_modify_ok.php">
                              <table width="520" height="212"  border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
                                <tr>
                                  <td width="87" align="center">公告主题:</td>
                                  <td width="433" height="31"><input name="txt_title" type="text" id="txt_title" size="40" value="<?php echo $row->title;?>">
                                  <input name="id" type="hidden" value="<?php echo $row->id;?>"></td>
                                </tr>
                                <tr>
                                  <td height="124" align="center">公告内容:</td>
                                  <td><textarea name="txt_content" cols="50" rows="8" id="txt_content"><?php echo $row->content;?></textarea></td>
                                </tr>
                                <tr>
                                  <td height="40" colspan="2" align="center"><input name="Submit" type="submit" class="btn_grey" value="修改" onClick="return check(form1);">                                    &nbsp;                                    <input type="reset" name="Submit2" value="重置"></td></tr>
                              </table>
                          </form>

<?php
$conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error());
mysql_select_db("db_database18",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set names gb2312");
$title=$_POST[txt_title];
$content=$_POST[txt_content];
$id=$_POST[id];
$sql=mysql_query("update tb_affiche set title='$title',content='$content' where id=$id");
if($sql){
    echo "<script>alert('公告信息编辑成功!');history.back();window.location.href='modify.php?id=$id';</script>";
}else{
    echo "<script>alert('公告信息编辑失败!');history.back();window.location.href='modify.php?id=$id';</script>";
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

image image image
<!--  翻页条 -->
                            <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);
                            ?>

编辑:

<?php
$conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error());
mysql_select_db("db_database18",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set names gb2312");
$title=$_POST[txt_title];
$content=$_POST[txt_content];
$id=$_POST[id];
$sql=mysql_query("update tb_affiche set title='$title',content='$content' where id=$id");
if($sql){
    echo "<script>alert('公告信息编辑成功!');history.back();window.location.href='modify.php?id=$id';</script>";
}else{
    echo "<script>alert('公告信息编辑失败!');history.back();window.location.href='modify.php?id=$id';</script>";
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<?php
$conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error());
mysql_select_db("db_database18",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set names gb2312");
$title=$_POST[txt_title];
$content=$_POST[txt_content];
$id=$_POST[id];
$sql=mysql_query("update tb_affiche set title='$title',content='$content' where id=$id");
if($sql){
    echo "<script>alert('公告信息编辑成功!');history.back();window.location.href='modify.php?id=$id';</script>";
}else{
    echo "<script>alert('公告信息编辑失败!');history.back();window.location.href='modify.php?id=$id';</script>";
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

练习:

<html>
<head>
<title>新闻</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<?php
 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; 
}
?>
<table width="600" height="100" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFCC">
  <tr>
    <td width="600" height="257" align="center" valign="top" background="images/image_08.gif"><table width="579" height="271"  border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="579" height="50" align="center" class="word_orange"><span class="style1">热焦新闻</span></td>
        </tr>
        <tr>
          <td height="249" align="center" valign="top">              <table width="460"  border="1" align="center" cellpadding="1" cellspacing="1" bordercolor="#FFFFCC" bgcolor="#DFDFDF">
                <?php
                    $conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error());
                    mysql_select_db("db_database18",$conn) or die("数据库访问错误".mysql_error());
                    mysql_query("set names gb2312");
                    $sql=mysql_query("select * from tb_affiche order by createtime desc limit 0,10");
                    $info=mysql_fetch_array($sql);
                    if($info==false){
                      echo "本站暂无公告信息!";
                     }
                    else{
                    $i=0;
                      do{ 
                  ?>
                <tr bgcolor="#E3E3E3">
                  <td height="24" align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;
                      <?php 
                                $i=$i+1;    
                                echo $i."、".chinesesubstr($info[title],0,40);
                                  if(strlen($info[title])>40){
                                    echo "...";

                                  } 
                               ?>
                      <em>&nbsp;[<?php echo $info[createtime];?>]</em> </td>
                </tr>
                <?php
                      }while($info=mysql_fetch_array($sql));
                   }
                    mysql_free_result($sql);                                //关闭记录集
                    mysql_close($conn);                                 //关闭MySQL数据库服务器
                  ?>
            </table></td>
        </tr>
    </table></td>
  </tr>
</table>
</body>
</html>

封装类数据库连接,操作,分页,字符串截取

<?php
//数据库连接类
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; 
}

}

?>

<?php
require("system..php");
//数据库连接类实例化
$connobj=new ConnDB("mysql","localhost","root","root","db_database");
$conn=$connobj->GetConnId();
//数据库操作类实例化
$admindb=new AdminDB();
//分页类实例化
$seppage=new SepPage();
//字符串截取类
$unhtml=new UseFun();

?>

结言

好了,欢迎在留言区留言,与大家分享你的经验和心得。

感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

感谢!承蒙关照!您真诚的赞赏是我前进的最大动力!

image

相关文章

  • PHP全栈学习笔记5

    php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的...

  • PHP全栈学习笔记5

    php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的...

  • PHP全栈学习笔记2

    php概述 什么是php,PHP语言的优势,PHP5的新特性,PHP的发展趋势,PHP的应用领域。 PHP是超文本...

  • PHP全栈学习笔记3

    trim()函数,用于去除字符串首尾空格和特殊字符返回的是去掉的空格和特殊字符后的字符串 ltrim()函数,用于...

  • PHP全栈学习笔记4

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScrip...

  • PHP全栈学习笔记22

    定义和用法sha1() 函数计算字符串的 SHA-1 散列。sha1() 函数使用美国 Secure Hash 算...

  • PHP全栈学习笔记24

    PHP in_array() 函数 定义和用法in_array() 函数搜索数组中是否存在指定的值。 type 参...

  • PHP全栈学习笔记25

    php验证码

  • PHP全栈学习笔记26

    php 验证码

  • PHP全栈学习笔记28

    数据库Mysql概述,数据库操作,数据表操作,数据类型,管理数据库 sql标准语言:数据查询语言 select数据...

网友评论

      本文标题:PHP全栈学习笔记5

      本文链接:https://www.haomeiwen.com/subject/ebenuctx.html