博主信息
博文 41
粉丝 0
评论 0
访问量 36645
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
0619作业2019年06月20日12:04:17
Viggo的博客
原创
1355人浏览过

利用命名空间声明接口,然后利用基础类继承接口,实现PDO的连接与查询操作。

实例

<?php

namespace Test;
use PDO;

if (!interface_exists(__NAMESPACE__.'\iDbParam')) //判断命名空间是否存在不存在返回true 不存在才需要声明所以加!取反
{
    interface iDbParam
    {
        const TYPE = 'mysql';
        const HOST = 'localhost';
        const USER_NAME = 'root';
        const PASSWORD = 'root';
        const DBNAME = 'php';
        public static function connection();
    }
}

//基本类继承接口用到命名空间继承
class Connection implements namespace\iDbParam
{
//    初始化连接参数 值时引用的命名空间接口内的属性
    private static $type = iDbParam::TYPE;
    private static $host = iDbParam::HOST;
    private static $userName = iDbParam::USER_NAME;
    private static $password = iDbParam::PASSWORD;
    private static $dbName = iDbParam::DBNAME;
    private static $pdo = null;

//    连接数据库
    public static function Connection()
    {
        // TODO: Implement connection() method.

        $dsn = self::TYPE.':host='.self::HOST.';dbname='.self::DBNAME;
        $user = self::USER_NAME;
        $password = self::PASSWORD;
        $pd = new PDO($dsn,$user,$password);
        self::$pdo = $pd;
        return $pd;//这里返回时方便外部自己写操作代码
    }

//    查询代码
    public static function select($table,$field='',$where='',$limit=0,$offset=0)
    {
        $field = empty($field) ? '*' : $field;
        $where = empty($where) ? '' : ' WHERE ' .$where;
        $limit = empty($limit) ? '' : ' LIMIT ' .$limit;
        $offset = empty($offset) ? '' : ' OFFSET '.$offset;


        $sql = 'select '.$field.' from '.$table.$where.$limit.$offset;
        $stmt = self::$pdo->prepare($sql);
        $stmt->execute();
        $stmt->debugDumpParams();die;
        return $stmt->fetchall(PDO::FETCH_ASSOC);

    }

}

//以后连接数据库只需要这个静态方法即可,注意命名空间
$link = Connection::Connection();

//执行一个查询
//$stmt = $link->prepare('select * from movies limit 5');
//$stmt->execute();
////$stmt->debugDumpParams();die;
//echo '<pre>'.print_r($stmt->fetchAll(PDO::FETCH_ASSOC),true);

//调用select()
echo '<pre>'.print_r(Connection::select('movies','name,image','name=\'情书\'',5),true);

运行实例 »

点击 "运行实例" 按钮查看在线实例


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学