为了账号安全,请及时绑定邮箱和手机立即绑定

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • 静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。

    查看全部
  • 在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。

    查看全部
  • 使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。

    class Car {
        public static function getName() {
            return '汽车';
        }
    }
    echo Car::getName(); //结果为“汽车”


    查看全部
  • 数据库操作完成后可以使用mysql_close关闭数据库连接,默认当php执行完毕会自动关闭数据库连接。

    mysql_close();

    在对性能要求较高的情况下,在进行数据库操作后尽快关闭连接,以节省资源提高性能。

    存在多个数据库连接的情况下,可以设定连接资源参数来关闭指定的连接

    $link =mysql_connection($host,$user,$password);
    mysql_close($link);


    查看全部
  • 数据更新删除相对简单,只需要构建好相应sql语句,然后调用mysql_query执行就能完成

    $sql="update user set name='李四' where id =2 limit 1";
    if(mysql_query($sql)){
        echo "更新成功";
    }

    删除:

    $sql ="delete from user where id=2 limit 1";
    if(mysql_query($sql)){
        echo "删除成功";
    }

    对于删除和更新操作,可以通过函数mysql_affected_row函数来获取更新过的数据行数,数据无变化返回0。

    $sql ="update user set name='张三' where id =2 ";
    if(sql_query($sql)){
        echo mysql_affected_rows();
    }


    查看全部
  • 通过mysql的limit可以很容易的实现分页,limit m,n 表示从m行后取n行数据,在php中需要构造m与n来实现分页查询结果。

    假定当前页为$page,每页显示$n条数据,m为当前页前面所有的数据,既$m=($page-1)*$n,知道原理后通过构造sql语句在php中实现分页查询。

    $page=2;
    $n=2;
    $m=($page-1)*$n;
    $sql ="select * from user limit $m,$n";
    $res=mysql_select($sql);
    //获取当前页数据
    $data=array();
    while($row=mysql_fetch_assoc($result)){
        $data[]=$row;
    }

    例子中使用了$m和$n变量标识偏移量与每页数据条数,推荐更有意义的变量名表示,入$page_size,$start,$offset等更容易理解。

    查看全部
  • php中有多个函数可以获取数据集中的一行数据,最常用的是mysql_fetch_array,可以通过设定参数来更改行数据的下标,默认的会包含数字索引的下标以及字段名的关联索引下标。

    $sql='select * from user limit 1';
    $res=mysql_query($sql);
    $row=mysql_fetch_array($res);

    可以通过设定参数MYSQL_NUM只获取数字索引数组,等同于mysql_fetch_row函数,若设定参数为MYSQL_ASSOC则只获取关联索引数组,等同于mysql_fetch_assoc函数。

    $row=mysql_fetch_row($res);
    $row=mysql_fetch_array($res,MYSQL_NUM);
    //这两个方法获取的数据是一样的
    
    $row=mysql_fetch_assoc($res);
    $row=mysql_fetch_array($res,MYSQL_ASSOC);

    若要获取数据集中所有数据,通过循环来遍历整个结果集

    $data=array();
    while($row=mysql_fetch_array($res)){
        $data[]=$row;
    }


    查看全部
  • 执行插入数据和查询类似,也是通过执行一个sql来实现,例如:

    $sql ="insert into user(name,age,class) values ('张三',18,'高一三班')";
    mysql_query($sql);//执行插入语句

    通常数据存在于变量或数组中,因此需要先进行字符串拼接得到。

    $name ='张三';
    $age=18;
    $class='高三一班';
    $sql="insert into user(name,age,class) values('$name','$age','$class')";
    mysql_query($sql);//执行插入语句、

    在mysql中没执行插入语句以后可以得到自增的主键id可以通过msql_insert_id函数获取该id.

    $uid=mysql_insert_id();

    可以通过这个来判断是否插入成功或者关联进行其他数据操作

    查看全部
  • 在数据库建立连接后进行查询,采用mysql_query加sql语句的形式向数据库发送查询指令。

    $res=mysql_query('select * from user');

    对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。

    $row=mysql_fetch_array($res);
    car_down($row);

    默认php使用最近的数据库连接执行查询,若存在多个连接的情况,则可以通过参数命令指定查询的连接。

    $link1=mysql_connection('127.0.0.1','code1','');
    $link2=mysql_connection('127.0.0.1','code2','',true);//开启一个新的连接
    $res=mysql_query('select * from user limit 1',$link1);//从第一个连接查询数据


    查看全部
  • php对数据库进行操作首先需要建立链接,通常使用mysql_connect函数进行数据库链接,该函数需要知道数据库的地址用户名和密码

    $host = 'localhost';
    $user = 'code1';
    $pass = '';
    $link = mysql_connect($host, $user, $pass);

    php链接数据库的方式类似直接在命令行下进行连接,类似

    mysql -h localhost -u code1 -p

    连接成功后需要选择一个操作的数据库,通过mysql_select_db函数来选择数据库

    mysql_selec_db('testdb');

    通常会先设置一下当前连接使用的字符编码,一般用的utf-8

    mysql_query("set names 'utf8'");

    通过上面步骤就与数据库建立了连接,可以进行数据库操作了。

    查看全部
  • php中一个数据库可能有一个或多个扩展,既有官方的也有第三方提供的。像mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行链接和操作。

    不同扩展提供基本相近的操作方法,不同的是可能具备一些新特性以及操作性能可能会有所不同。

    mysql扩展进行数据库链接的方法:

    $link=mysql_connect('mysql_host','user','password');

    mysqli扩展:

    $link=mysqli_connection('mysql_host','user','password');

    PDO扩展:

    $dsn='mysql:dbname=testdb;host=127.0.0.1';
    $dbh=new PDO($dsn,'user','password');


    查看全部
    0 采集 收起 来源:PHP数据库扩展

    2019-02-15

  • 通过安装相应的扩展来实现数据库操作,当前主流数据库MsSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL,Access等都能够安装扩展来支持,一般情况下常说的LAMP架构值:Linux、Apache、Mysql、PHP,因此Mysql数据库在Php中的应用非常广泛。

    查看全部
  • 在异常信息捕获后,我们可以通过异常处理对象获取其中的异常信息,以及获取基本的错误信息。

    在实际应用中,通常或获取足够多的异常信息,然后写入到错误日志中。

    通过文件名、行号、错误信息、异常追踪信息等记录到日志中,以便以调试与修复问题。

    try {
        throw new Exception('wrong');
    } catch(Exception $ex) 
    {
        $msg = 'Error:'.$ex->getMessage()."\n";
        $msg.= $ex->getTraceAsString()."\n";
        $msg.= '异常行号:'.$ex->getLine()."\n";
        $msg.= '所在文件:'.$ex->getFile()."\n";
        //将异常信息记录到日志中 PHP异常处理之   
        file_put_contents('error.log', $msg);
    }


    查看全部
  • 通过try catch来捕获异常,将执行代码放到try块中,一旦其中代码抛出异常,就能在catch中捕获。


    在实际应用中,不会轻易抛出异常,只有在极端情况或者非常重要的情况下才回抛出异常,抛出异常可以保障程序的正确性与安全,避免导致不可预知的bug。

    一般异常处理流程:

    try{
        throw new Exception('wrong');
    }catch(Exception $ex){
        echo 'Error:'.$ex->getMessage().'<br>';
        echo $ex->getTraceAsString().'<br>';
    }
    echo '异常处理后继续执行的代码';


    查看全部
  • php具有许多异常处理类其中E相册旁听是所有异常处理的基类。

    Exception具有几个基本属性与方法:

    message:异常消息内容

    code:异常代码

    file:抛出异常的文件

    line:抛出异常在该文件中的行数

    其中的方法有:

    getTrace:获取异常追踪信息

    getTraceAsString:获取异常追踪信息的字符串

    getMessage:获取出错信息


    可以通过继承Exception类来创建自定义的异常处理类

    //自定义的异常处理类,机场异常基类Exception

    class MyException extends Exception{
        function getInfo(){
            return '自定义错误信息';
        }
    }
    try{
        //触发异常
        throw new MyException('error');
    }catch(Exception $e){
        echo $e->getInfo();//获取自定义的异常信息
        echo $e->getMessage();//获取继承基类的getMessage信息
    }


    查看全部

举报

0/150
提交
取消
课程须知
需要有一定的网页基础知识如HTML、CSS样式等,并且已经学习完成《PHP入门篇》对PHP已经有了简单的了解,如变量、常量、数据类型等。
老师告诉你能学到什么?
全面的掌握PHP的理论知识与实践中的应用方法,提高编程能力与掌握网页开发技能。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!