indieteq-php-my-sql-pdo-database-class, 一个利用PDO的PHP MySQL数据库类

作者:无名 - GitHub -

  • 源代码名称:indieteq-php-my-sql-pdo-database-class
  • 源代码网址:http://www.github.com/wickyaswal/indieteq-php-my-sql-pdo-database-class
  • indieteq-php-my-sql-pdo-database-class源代码文档
  • indieteq-php-my-sql-pdo-database-class源代码下载
  • git url:
    git://www.github.com/wickyaswal/indieteq-php-my-sql-pdo-database-class.git
  • git clone代码到本地:
    git clone http://www.github.com/wickyaswal/indieteq-php-my-sql-pdo-database-class
  • subversion代码到本地:
    $ svn co --depth empty http://www.github.com/wickyaswal/indieteq-php-my-sql-pdo-database-class

    checked out revision 1.

    $ cd repo

    $ svn up trunk

  • 现在我不再维护这个库,我想让你找到更好的repo 或者创建这个库的一个 fork ! 数据库类

    一个使用pdo扩展的php mysql数据库类。

    使用类

    1编辑 settings.ini. php中的数据库设置

    注意:如果pdo正在加载缓慢的更改localhost到-gt; 127.0.0.1 !

    [sql]

    host = 127.0.0.1

    user = root

    password =

    dbname = yourdatabase

    2.需要项目中的类
    lt;phprequire("db.class.php");
    3创建实例
    lt;php// the instance$db=newdb();
    4.日志- 修改 root 文件夹的读/写权限

    每次数据库类抛出异常时,都会创建或者修改日志文件。 这些日志存储在日志目录中。 即数据库类需要对日志文件夹进行写访问。 如果文件位于服务器上,你必须修改 根目录的权限,否则你将得到"权限被拒绝"错误。

    日志文件是一个简单的纯文本文件,当前日期('year-month-day') 为文件名。

    示例

    下面是数据库类基本函数的一些示例。 我已经包含了一个sql转储,以便你可以轻松地测试数据库类函数。

    firstname firstname sex sex sex sex sex sex
    1约翰的房间乱七八糟的堆着衣服、书和玩具。doem19
    2bob黑色m41
    3佐伊chanf20
    4konakhanm14
    5kaderkhanm56
    从表格中获取所有内容
    lt;php// fetch whole table$persons=$db-gt;query("select*from persons");
    使用绑定( anti-sql-injection ) 获取 :

    绑定参数是防止 sql注入的最佳方法。 类准备sql查询并在以后绑定参数。

    有三种不同的方法来绑定参数。

    lt;php// 1. read friendly method $db-gt;bind("id","1");$db-gt;bind("firstname","john");$person=$db-gt;query("select*from persons where firstname = :firstname and id = :id");// 2. bind more parameters$db-gt;bindmore(array("firstname"=gt;"john","id"=gt;"1"));$person=$db-gt;query("select*from persons where firstname = :firstname and id = :id"));// 3. or just give the parameters to the method$person=$db-gt;query("select*from persons where firstname = :firstname and id = :id",array("firstname"=gt;"john","id"=gt;"1"));

    有关 sql注入 预防的更多信息:http://indieteq.com/index/readmore/how-to-prevent-sql-injection-in-php

    获取行:

    这里方法总是返回 1行。

    lt;php// fetch a row$ages=$db-gt;row("select*from persons where id = :id", array("id"=gt;"1"));
    姓氏sex的结果
    1约翰的房间乱七八糟的堆着衣服、书和玩具。doem19
    获取单个值:

    这里方法只返回记录的一个单一值。

    lt;php// fetch one single value$db-gt;bind("id","3");$firstname=$db-gt;single("select firstname from persons where id = :id");
    结果名
    佐伊
    使用类似关键字
    lt;php// using like // notice the wildcard at the end of the value!!$like=$db-gt;query("select*from persons where firstname like :firstname ", array("firstname"=gt;"sekit%"));
    姓氏sex的结果
    4sekitokhanm19
    获取列:
    lt;php// fetch a column$names=$db-gt;column("select firstname from persons");
    结果名
    约翰的房间乱七八糟的堆着衣服、书和玩具。
    bob
    佐伊
    kona
    kader

    delete/update/insert

    执行删除。更新或者插入语句时,将返回受影响的行。

    lt;php// delete$delete=$db-gt;query("deletefrom persons where id = :id", array("id"=gt;"1"));// update$update=$db-gt;query("update persons set firstname = :f where id = :id", array("f"=gt;"jan","id"=gt;"32"));// insert$insert=$db-gt;query("insert into persons(firstname,age) values(:f,:age)", array("f"=gt;"vivek","age"=gt;"20"));// do something with the data if($insertgt;0 ) {return'succesfully created a new person!';}

    方法参数

    执行查询的每个方法都具有可选参数bindings绑定"。

    行和查询方法有第三个可选参数,即提取样式。 默认的提取样式是 pdo::fetch_assoc,它返回一个关联 array。

    这里有一个例子:

    lt;php// fetch style as third parameter$person_num=$db-gt;row("select*from persons where id = :id", array("id"=gt;"1"), pdo::fetch_num);print_r($person_num);// array ( [0] =gt; 1 [1] =gt; johny [2] =gt; doe [3] =gt; m [4] =gt; 19 )

    关于 pdo fetchstyle的更多信息: http://php.net/manual/en/pdostatement.fetch.php

    easycrud

    easycrud是一个类,你可以使用它轻松执行数据库中的基本sql操作( 如(。插入,更新,选择,删除) )。 它使用我创建的数据库类执行sql查询。

    实际上它只是一个小小的orm类。

    如何使用 easycrud

    1.首先,创建一个新类。 然后需要easycrud类。 将类扩展到基类crud并将下列字段添加到类。 示例类:
    lt;phprequire_once("easycrud.class.php");classyourclassextendscrud {# the table you want to perform the database actions onprotected$table='persons';# primary key of the tableprotected$pk='id';}

    easycrud操作。

    创建新人员
    lt;php// first we"ll have create the instance of the class$person=newperson();// create new person$person-gt;firstname="kona";$person-gt;age="20";$person-gt;sex="f";$created=$person-gt;create();// or give the bindings to the constructor$person=newperson(array("firstname"=gt;"kona","age"=gt;"20","sex"=gt;"f"));$created=$person-gt;create();// sql equivalent"insert into persons (firstname,age,sex) values ('kona','20','f')"
    删除一个人
    lt;php// delete person$person-gt;id="17";$deleted=$person-gt;delete();// shorthand method, give id as parameter$deleted=$person-gt;delete(17);// sql equivalent"deletefrom persons where id =17limit1"
    保存人员数据
    lt;php// update personal data$person-gt;firstname="john";$person-gt;age="20";$person-gt;sex="f";$person-gt;id="4"; // returns affected rows$saved=$person-gt;save();// or give the bindings to the constructor$person=newperson(array("firstname"=gt;"john","age"=gt;"20","sex"=gt;"f","id"=gt;"4"));$saved=$person-gt;save();// sql equivalent"update persons set firstname ='john',age =20, sex ='f'where id=4"
    找一个人
    lt;php// find person$person-gt;id="1";$person-gt;find();echo$person-gt;firstname;// johny// shorthand method, give id as parameter$person-gt;find(1); // sql equivalent"select*from persons where id =1"
    让所有的人
    lt;php// finding all person$persons=$person-gt;all(); // sql equivalent"select*from persons 

    版权和许可证

    在beerware下发布的代码



    文章标签:数据php类utilutipdo

    本文内容由IT人知识库(原文链接:http://www.itpeo.net/389612/4636922.html)本站为各位整理





    bashful, 一组模块来简化bash脚本编写

    源代码名称:bashful源代码网址:http://www.github.com/plytophogy/bashfulb ...

    rfedfre

    ProxyMan, 配置代理设置变得容易

    源代码名称:proxyman源代码网址:http://www.github.com/himanshub16/proxym ...

    rfedfre

    NavigationTabBar, 导航选项卡栏,带有丰富的交互功能

    源代码名称:navigationtabbar源代码网址:http://www.github.com/devlight/n ...

    LiFePO4wered-Pi, lifepo4wered/pi模块的访问库,命令行 工具和守护进程

    源代码名称:lifepo4wered-pi源代码网址:http://www.github.com/xorbit/life ...

    uAssets, uBlock源资源,uMatrix

    源代码名称:uassets源代码网址:http://www.github.com/ublockorigin/uasset ...

    rgeo, 面向 ruby的地理空间数据库

    源代码名称:rgeo源代码网址:http://www.github.com/rgeo/rgeorgeo源代码文档rgeo ...

    Mycroft-AI-Gnome-Shell-Extension, Gnome shell GUI扩展

    源代码名称:mycroft-ai-gnome-shell-extension源代码网址:http://www.githu ...

    lerna-changelog, 为 Lerna repo ( 或者常规) 生成变更日志

    源代码名称:lerna-changelog源代码网址:http://www.github.com/lerna/lerna ...

    rfedfre

    ouzel, 用于 Windows macOS Linux iOS tvOS 安卓和网络浏览器的C++ 游戏引擎

    源代码名称:ouzel源代码网址:http://www.github.com/elnormous/ouzelouzel源 ...

    ntm-one-shot, 一种基于记忆增强神经网络

    源代码名称:ntm-one-shot源代码网址:http://www.github.com/tristandeleu/n ...

    jsonschema, python的JSON架构的An(other) 实现

    源代码名称:jsonschema源代码网址:http://www.github.com/julian/jsonschem ...

    Retina-Sprites-for-Compass, 一个用于创建带有悬停&活动状态的Retina 精灵的mixin

    源代码名称:retina-sprites-for-compass源代码网址:http://www.github.com/ ...

    java-driver, Apache Cassandra的DataStax Java驱动程序

    源代码名称:java-driver源代码网址:http://www.github.com/datastax/java-d ...

    servicebus, 使用amqp在进程间发送事件的简单服务总线

    源代码名称:servicebus源代码网址:http://www.github.com/mateodelnorte/se ...

    bxslider-4, 响应式jQuery内容 slider

    源代码名称:bxslider-4源代码网址:http://www.github.com/stevenwanderski/ ...

    android-gpuimage, 基于 OpenGL ( 从GPUImage到iOS的想法)的基于 Android

    源代码名称:android-gpuimage源代码网址:http://www.github.com/cyberagent ...

    redline-smalltalk, 用于JVM的Smalltalk

    源代码名称:redline-smalltalk源代码网址:http://www.github.com/redline-s ...

    dl4j-examples, Deeplearning4j示例( DL4J,DL4J Spark,DataVec )

    源代码名称:dl4j-examples源代码网址:http://www.github.com/deeplearning4 ...

    emoji-data-js, 用于NodeJS的瑞士军刀编码表情符号

    源代码名称:emoji-data-js源代码网址:http://www.github.com/mroth/emoji-d ...

    plantuml-gist, 使用 Github Gist和Gitlab支持的PlantUML

    源代码名称:plantuml-gist源代码网址:http://www.github.com/linux-china/p ...