sql.class.php - 最简单优雅的sql操作类库


GPLv3
跨平台
PHP

软件简介

sql.class.php

做最好的PHP操作类库

  • 简单易懂的源代码

  • 配置简单,方便易用

  • 基于PDO 支持多种数据库,不耦合,不依赖第三方类库

  • 功能适中,便于集成

  • 支持PHP5.2+

  • 安全防sql注入

基于最小接口原则

开发者基本只需要使用Sql 类的2个便捷函数就能操作所有的功能:

Sql::dsn        # 得到 数据源对象
Sql::assistant  # 得到 Sql辅助类对象

使用手册

class JptestApp
{

    /**
     * @var SqlDataSource
     */
    static $ds = null;

    static function sql_monitor($sql, $dsn_id)
    {
        if (PHP_SAPI === 'cli')
        {
            fwrite(STDOUT, "[sql]: " . print_r($sql,true) . PHP_EOL);
        }
        else
        {
            echo "<BR />[sql]: " . print_r($sql,true);
        }
    }

}

function jptest_init()
{
    $dsn = array(
            'type' => 'mysql',

            'dbpath'  => 'mysql:host=127.0.0.1;port=3306;dbname=jptest',
            'login' => 'root',
            'password' => '123456',

            'initcmd' => array(
                    "SET NAMES 'utf8'",
                ),

            'attr'  => array(
                    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                    PDO::ATTR_PERSISTENT => false,
                ),

            'monitor'   => 'JptestApp::sql_monitor',
        );
    JptestApp::$ds = Sql::ds($dsn);
    var_dump(JptestApp::$ds);

    $result = null;
    // $result = JptestApp::$ds->all('show tables');
    // 
    // $result = Sql::assistant( JptestApp::$ds )->select_row('ixr_citys',array('island'=>array(1,'>=')),'id,name,image');
    // 
    // $result = Sql::assistant( JptestApp::$ds )->select('ixr_citys',array('id'=>array(1,'>=')),'id,name,image');

    prety_printr( $result );
}