<?php
class PD
{
    //造对象
    public $dsn = "mysql:dbname=test2;host=localhost";        //数据库类型,数据库名和服务器地址
    public $uid="root";             //用户名
    public $pwd="123";             //密码

    /**
    *给一个sql语句,返回执行的结果
    *@param string $sql 用户指定的sql语句
    *@param array $attr 用户指定的数组,默认为空
    *@param int $type 用户给的语句类型,0代表增删改,1代表查询
    *@return  返回查询的结果,如果是查询返回二维数组,如果是增删改返回true或false
    */

    function EXEC($sql,$attr=array(),$type=1)
    {
        //造连接对象
        $pdo = new PDO($this->dsn,$this->uid,$this->pwd);

        //执行sql语句
        $st = $pdo->prepare($sql);

        //判断增、删、改、查
        if($type==0)
        {
            return $st->execute($attr);
        }
        else if($type==1)  //从结果集对象里面取数据
        {
            if(!empty($attr) && count($attr)>0)  //判断是否有传过来进行查询的数组
            {
                $st->execute($attr);
                return $st->fetchAll(PDO::FETCH_ASSOC);
            }
            else
            {
                $st->execute();
                return $st->fetchAll(PDO::FETCH_ASSOC);
            }
        }
        else
        {
            return false;
        }

    }

    function StrEXEC($sql,$attr=array(),$type=1)
    {
        //造连接对象
        $pdo = new PDO($this->dsn,$this->uid,$this->pwd);

        //执行sql语句
        $st = $pdo->prepare($sql);

        //判断增、删、改、查
        if($type==0)
        {
            return $st->execute($attr);
        }
        else if($type==1)    //从结果集对象里面取数据
        {
            if(!empty($attr) && count($attr)>0)        //判断是否有传过来进行查询的数组
            {
                $st->execute($attr);
                $data = $st->fetchAll(PDO::FETCH_ASSOC);
                $str="";
                foreach($data as $v)    //进行字符串的拼接
                {
                    $str .= implode("^",$v);
                    $str .="|";
                }
                return substr($str,0,strlen($str)-1);
            }
            else
            {
                $st->execute();
                $data = $st->fetchAll(PDO::FETCH_ASSOC);
                $str="";
                foreach($data as $v)
                {
                    $str .= implode("^",$v);
                    $str .="|";
                }
                return substr($str,0,strlen($str)-1);
            }
        }
        else
        {
            return false;
        }

    }

}

写了个简单的pdo的封装类的更多相关文章

  1. 用qpython3写一个最简单的发送短信的程序

    到目前为止并没有多少手机应用是用python开发的,不过qpython可以作为一个不错的玩具推荐给大家来玩. 写一个最简单的发送短信的程序,代码如下: #-*-coding:utf8;-*- #qpy ...

  2. 只是一个用EF写的一个简单的分页方法而已

    只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...

  3. 【spring】-- 手写一个最简单的IOC框架

    1.什么是springIOC IOC就是把每一个bean(实体类)与bean(实体了)之间的关系交给第三方容器进行管理. 如果我们手写一个最最简单的IOC,最终效果是怎样呢? xml配置: <b ...

  4. 写了一个简单的CGI Server

    之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...

  5. 写几个简单用artTemplate的例子

    写几个简单的artTemplate的例子,很多框架都有自己的模板(template),没得时候,可以利用artTemplate.js完成 html文件是: <!DOCTYPE html> ...

  6. tcp窗口机制(写的最简单精炼的文章)

    tcp窗口机制(写的最简单精炼的文章) http://blog.csdn.net/occupy8/article/details/48468445

  7. 自己写的一个简单PHP采集器

    自己写的一个简单PHP采集器 <?php //**************************************************************** $url = &q ...

  8. JavaScript 写几个简单的知识点

    首先,还是用比较官方的文字描述来解释下JavaScript: JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 ...

  9. [原创]用python写了一个简单的markdown编辑器

    以前我常用openoffice记录东西,最喜欢它的当然是在linux上能用了,还有里面的公式输入,前几天才了解markdown这个东东,初步了解发现它正是我需要的东西,可以用它随心所欲地记录些东西,而 ...

随机推荐

  1. PHP测试用例文档

    PHP接口测试用例和文档 PHP在过程中的测试 采用写一个简单html表单做一个简单的post测试 PHP接口测试文档 Alpha部分主要的接口文档可查看 接口文档 功能模块 接口 登录注册模块 验证 ...

  2. 任务调度框架-Quartz.Net

    使用Quartz.Net依赖于以下3个组件:Common.Logging.dll.Common.Logging.Core.dll.Quartz.dll 简单封装 using Quartz; using ...

  3. Swift 3 迁移工作总结

    写在前面 Swift 3.0 正式版发布了差不多快一个月了,断断续续的把手上和 Swift 相关的迁移到了Swift 3.0.所以写点小总结. 背景 代码量(4万行) 首先,我是今年年初才开始入手 S ...

  4. 【leetcode】Convert Sorted List to Binary Search Tree (middle)

    Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...

  5. R&amp;&amp;rstudio

    R sudo apt-get install R-base Rstudio()下载Rstudio桌面版失败 sudo apt-get install gdebi-core 如果提示少了什么东西,运行下 ...

  6. java new synchronized

    java provides the synchronized keyword for synchronizing thread access to critical sections. Because ...

  7. 如何正确地在手机上显示图片——QImage与QPixmap完全解析

    引言 用Qt程序在手机上显示一幅图片对编程人员来说是再基础不过的一件事情了.那么先让大家看两段代码: //dangerous should not be used, cannot display ea ...

  8. html5视频标签

    <video width="200" height="200" poster="img/shamo.jpg" src="vi ...

  9. HTML5最佳实践web app

    简介 本文重点关注如何充分利用HTML5和CSS让web app运行更加流畅. Tip 1: 使用web storage代替cookie cookie最大的缺陷是在每一次HTTP请求中都会携带所有符合 ...

  10. python实现列表的排序

    群里有同行遇到这样一个面试题:有一个整数构成的列表,需要给这个列表进行从小到大存入到另一个列表中. 本身排序可以用python的内置函数sort和sorted,但题目的要求是手动实现. 看起来很简单, ...