<?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. JavaScript 写几个简单的知识点

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

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

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

  5. Linux C语言写的超级简单port扫描器

    这个本来曾经也写过的,今天无聊复习下 再写一遍.简单的一塌糊涂,写的不咋地大家见谅哦!有空再加强 嘿嘿! #include <stdio.h> #include <stdlib.h& ...

  6. 用jQuery写的最简单的表单验证

    近几天完成了关于我们项目的最简单的表单验证,是用jQuery写的,由于之前也一直没学过jQuery,所以自己也是一直处于边摸索边学习的阶段,经过这一段时间的学习,通过查资料啥的,也发现了学习jQuer ...

  7. Extjs 让combobox写起来更简单

    也已经写了很久时间的extjs ,每次都用到很多的combobox,配置很多东西觉得实在是太麻烦,所以根据常用到的情况写了一个简便的combobox,再次记录下来,以免放在某个地方忘记了找不到了. 定 ...

  8. 写了一个简单的NodeJS实现的进程间通信的例子

    1. cluster介绍 大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算.所以,有人开发了第三方的cluster,让node可以利用多核CPU ...

  9. 用Objective-C写了一个简单的批量更改文件名的程序

    前言:因为本人要高仿一个app,从app中解压asserts得到的所有图片文件,文件名都带有~iPhone这个干扰的名字,为了去除这个~iPhone这个字符串,所以本人写了个简答的批量更改所有文件名的 ...

随机推荐

  1. bench.sh 跑分测速

    #!/bin/bash #==============================================================# # Description: bench te ...

  2. .net core 基本概念

    asp.net core 是基于 .net core的,所以能够跨平台. 目前存在.NET Framework (CLR), .NET Core (CoreCLR) or Mono,可根据项目的具体情 ...

  3. 自定义Dialog宽度占满屏幕

    一.自定义Dialog继承Dialog public class MyDialog extends Dialog { 二.为Dialog设置样式 在style中建立新样式继承 @android:sty ...

  4. GBDT(MART) 迭代决策树简介

    以下对GBDT的介绍深入浅出,非常易懂 转自:http://blog.csdn.net/w28971023/article/details/8240756 GBDT(Gradient Boosting ...

  5. C# has three timers

    结论 *1.窗体timer和线程timer.计时器timer不同,因为后两者dispose之后,GC可以收集,而前者无法收集 *2.如果一个对象的成员函数正在被执行,那么这个对象肯定不会被收集 *3. ...

  6. Qt Designer怎样加入资源文件

    Qt Designer中如果在设计UI界面的时候要加入一些图素,图标等资源的时候是不能直接添加进去的,需要在Qt开发目录下编写QRC文件 qrc文件格式如下: <RCC> <qres ...

  7. 黑马程序员:Java编程_反射技术

    =========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== Java类用于描述一类事物的共性,该类事物有什么属性,没有什么属性,至于这个属性 ...

  8. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

    来自 http://www.zhihu.com/question/19599986 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS? 想选择一个 Linux 发行版作为服务器. ...

  9. 【Linux程序设计】之环境系统函数综合实验

    这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的.贴出来纯粹是聊胜于无. 实验题目:Linux环境下系统函数综合实验 实验目的:熟悉并掌握Linux环境下数学函 ...

  10. 结合源码看nginx-1.4.0之nginx模块组织结构详解

    目录 0. 摘要 1. nginx模块组织结构 2. nginx模块数据结构 3. nginx模块初始化 4. 一个简单的http模块 5. 小结 6. 参考资料 0. 摘要 nginx有五大优点:模 ...