PdoOne

2025-12-07 0 347

单个类中的PHP和PDO的数据库访问对象包装

PdoOne 。它是与SQL Server(2008 R2或更高),MySQL(5.7或更高)和Oracle(12.1或更高)兼容的PHP PDO库的简单包装器。

该图书馆试图尽可能快地工作。大多数操作都是简单的字符串/数组管理,并在PDO库的裸机中工作,但它还允许使用扩展EFTEC/ PdoOne ORM创建ORM。

 $ stmt = $ pdo -> prepare ( \" SELECT * FROM myTable WHERE name = ? \" );
$ stmt -> bindParam ( 1 , $ _POST [ \' name \' ], PDO :: PARAM_STR );
$ stmt -> execute ();
$ result = $ stmt -> get_result ();
$ products =[];
while ( $ row = $ result -> fetch_assoc ()) {
  $ product []= $ row ; 
}
$ stmt -> close ();

进入这个

PdoOne
->select("*")
->from("myTable")
->where("name = ?",[$_POST[\’name\’]])
->toList();\”>

 $ products = $ PdoOne
    -> select ( \" * \" )
    -> from ( \" myTable \" )
    -> where ( \" name = ? \" ,[ $ _POST [ \' name \' ]]) 
    -> toList ();

或使用ORM(使用EFTEC/ PdoOne ORM库)

PdoOne()->generateCodeClass([\’Product\’]); or using the cli.
::where("name = ?",[$_POST[\’name\’]])
::toList();\”>

ProductRepo // this class was generated with echo $ PdoOne ()->generateCodeClass([\'Product\']); or using the cli.
    :: where ( \" name = ? \" ,[ $ _POST [ \' name \' ]])
    :: toList ();

目录

  • 单个类中的PHP和PDO的数据库访问对象包装器
  • 目录
    • 例子
    • 安装
      • 安装(使用作曲家)
      • (手动)安装
    • 如何创建连接?
      • OCI
    • 如何运行SQL命令?
      • 1。运行原始查询
      • 2。运行本机PDO语句
      • 3.使用查询构建器运行
      • 4。使用ORM运行
      • 5。以不同的模式运行查询
    • 如何使用日期值?
    • 如何运行交易?
    • 自定义查询
      • tableexist($ tableName)
      • StatValue($ tableName,$ columnname)
      • 列Ttable($ tableName)
      • ExourneKeyTable($ tableName)
      • createtable($ tableName,$ definity,$ priendarkey = null,$ extair ='',$ extairoutside ='')
      • tablesorted($ maxloop = 5,$ returnproblems = false,$ debugtrace = false)
      • 可验证的Eftable($ pdoinstance,$ tablename,$ deftable,$ deftablekey)
      • 外键
    • 查询构建器(DQL)
      • 选择($列)
      • 计数($ sql,$ arg ='*')
      • min($ sql,$ arg ='*')
      • max($ sql,$ arg ='*')
      • sum($ sql,$ arg ='*')
      • avg($ sql,$ arg ='*')
      • 独特($ diminter ='独特')
      • 来自($表)
      • where($ where,[$ arrayParameters = array()))
        • 其中()无参数。
        • 其中()带有由索引数组定义的参数。
        • 其中()使用关联数组
        • 其中()使用关联数组并命名参数
        • where()的示例
      • 订单($订单)
      • 小组($组)
      • 具有($ ake,[$ arrayParameters])
      • chain
        • rungen($ returnarray = true)
        • tolist($ pdomode)
  • TopStatement($ PDOMODE)
  • fetchloop($ callable,$ pdomode) * tometa() * tolistimple() * tolistKeyValue() * toresult() * firstScalar($ colname = null) * first() * first() * last() * sqlgen() * sqlgen()
    • 查询构建器(DML)
      • 插入($表,$架构,[$ values])
      • insertObject($ table,[$ declarativearray],$ excludeColumn = [])
      • 更新($$表,$架构,$ values,[$ schemawhere],[$ valueswhere])
      • delete([$ table],[$ schemawhere],[$ valueswhere])
    • 缓存
      • 如何配置它?
      • 使用APCU的示例
    • 顺序
      • 创建序列
      • 创建一个没有表的序列。
      • 使用序列
    • 字段
    • 加密
    • 如何在数据库中调试和跟踪错误?
      • 设置日志级别
      • 投掷错误
      • 获取最后一个查询
      • 生成日志文件
    • CLI
      • 作为CLI运行
      • 作为CLI相互作用
        • 例子
      • 运行CLI以生成存储库类。
      • CLI-CLASSCODE
      • CLI-SELECTCODE
      • cli arraycode
      • 克里·杰森
      • CLI-CSV
      • UI
      • 如何运行UI?
      • DDL数据库设计语言
      • 嵌套操作员
      • DQL数据库查询语言
      • DML数据库模型语言
      • 验证模型
      • 递归
        • 递归()
        • getRecursive()
        • HASRECURSIVE()
    • 基准(MySQL,估计)
    • 从3到4迁移
    • 错误常见问题解答
      • 未定义的错误:未定义的EFTEC_BASE PdoOne REPO :: COMPIELVERSION
    • 变革主义者

例子

exeppleticketPHP 纸杯蛋糕 示例搜索 示例不同的方法

更多示例:

示例使用PdoOne MySQL php和PDO

安装

该库需要php 7.1及更高版本,并且需要扩展PDO和扩展PDO-MYSQL(MySQL),PDO-SQLSRV(SQL Server)或PDO-OCI(Oracle)

安装(使用作曲家)

编辑Composer.json下一个要求,然后更新作曲家。

PdoOne": "^4.0.1"
}
}\”>

  {
      \"require\" : {
        \"eftec/ PdoOne \" : \" ^4.0.1 \"
      }
  }

或使用CLI使用

作曲家需要eftec/ PdoOne

(手动)安装

只需从库中下载文件夹lib,然后放入您的文件夹项目即可。然后,您必须包括其中包含的所有文件。

如何创建连接?

如下创建类PdoOne的实例。然后,您可以使用方法Connect()或Open()打开连接()

PdoOne;
// mysql
$dao=new PdoOne ("mysql","127.0.0.1","root","abc.123","sakila","");
$conn->logLevel=3; // it is for debug purpose and it works to find problems.
$dao->connect();

// sql server 10.0.0.1\\instance or (local)\\instance or machinename\\instance or machine (default instance)
$dao=new PdoOne ("sqlsrv","(local)\\sqlexpress","sa","abc.123","sakila","");
$conn->logLevel=3; // it is for debug purpose and it works to find problems.
$dao->connect();

// test (mockup)
$dao=new PdoOne ("test","anyy","any","any","any","");
$dao->connect();

// oci (oracle) ez-connect. Remember that you must have installed Oracle Instant client and added to the path.

$cs=\'(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = instancia1)))\’;
$dao=new PdoOne ("oci",$cs,"sa","abc.123"); // oracle uses the user as the schema
$conn->logLevel=3; // it is for debug purpose and it works to find problems.
$dao->connect();

// oci (oracle) tsnnames (the environment variables TNS_ADMIN and PATH must be correctly configured), also tnsnames.ora must exists.
$cs=\’instancia1\’;
$dao=new PdoOne ("oci",$cs,"sa","abc.123"); // oracle uses the user as the schema
$conn->logLevel=3; // it is for debug purpose and it works to find problems.
$dao->connect();
\”>

 use eftec \\ PdoOne ;
// mysql
$ dao = new PdoOne ( \" mysql \" , \" 127.0.0.1 \" , \" root \" , \" abc.123 \" , \" sakila \" , \"\" );
$ conn -> logLevel = 3 ; // it is for debug purpose and it works to find problems.
$ dao -> connect ();

// sql server 10.0.0.1\\instance or (local)\\instance or machinename\\instance or machine (default instance)
$ dao = new PdoOne ( \" sqlsrv \" , \" (local)\\sqlexpress \" , \" sa \" , \" abc.123 \" , \" sakila \" , \"\" );
$ conn -> logLevel = 3 ; // it is for debug purpose and it works to find problems.
$ dao -> connect ();

// test (mockup)
$ dao = new PdoOne ( \" test \" , \" anyy \" , \" any \" , \" any \" , \" any \" , \"\" );
$ dao -> connect ();

// oci (oracle) ez-connect. Remember that you must have installed Oracle Instant client and added to the path.

$ cs = \' (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = instancia1))) \' ;
$ dao = new PdoOne ( \" oci \" , $ cs , \" sa \" , \" abc.123 \" ); // oracle uses the user as the schema
$ conn -> logLevel = 3 ; // it is for debug purpose and it works to find problems.
$ dao -> connect ();

// oci (oracle) tsnnames (the environment variables TNS_ADMIN and PATH must be correctly configured), also tnsnames.ora must exists.
$ cs = \' instancia1 \' ;
$ dao = new PdoOne ( \" oci \" , $ cs , \" sa \" , \" abc.123 \" ); // oracle uses the user as the schema
$ conn -> logLevel = 3 ; // it is for debug purpose and it works to find problems.
$ dao -> connect ();

在哪里

$ dao = new PdoOne (“ mysql”,“ 127.0.0.1”,“ root”,“ abc.123”,“ sakila”,“”);

  • mySQL ”是MySQL数据库。它还允许SQLSRV(用于SQL Server)或“ OCI”
  • 127.0.0.1是数据库的服务器。
  • 是用户
  • ABC.123是用户根的密码。
  • Sakila是使用的数据库。
  • “”(可选)它可能是一个日志文件,例如c:\\ temp \\ log.txt

OCI

Oracle安装很棘手。在Windows中,从Oracle Home的bin文件夹中,您必须将所有DLL复制到PHP文件夹和Apache文件夹。

如何运行SQL命令?

1。运行原始查询

使用方法Runrawquery() ,我们可以在有或没有参数的情况下直接执行命令到PDO。它可以返回pdostatement数组。当我们想要速度时,这很有用。

runrawquery($ rowsql,$ param,$ returnarray,$ fetchmode,$ fetchargument)

字符串$ rawSQL执行阵列的查询| null $ param [type1,value1,type2,value2]或[name1 => value,name2 = value2] bool $ returnaray如果为true(默认),则返回一个数组。如果false,则返回pdostatement int $ fetchmode表示获取模式。示例:pdo :: fetch_assoc null $ fetchargument fetchmode的参数。

 $ sql = \' select * from table where id=1 \' ;
$ pdoStatement = $ PdoOne -> runRawQuery ( $ sql ,[], false );  // [] are the parameters

但是我们可以将其更改为返回一个数组

 $ sql = \' select * from table where id=1 \' ;
$ values = $ PdoOne -> runRawQuery ( $ sql );  // [] are the parameters

我们也可以传递参数。

 $ values = $ con -> runRawQuery ( \' select * from table where id=? \' ,[ 20 ]); // with parameter
$ values = $ con -> runRawQuery ( \' select * from table where id=:name \' ,[ \' name \' => 20 ]); // with named parameter
$ values = $ con -> runRawQuery ( \' select * from table \' ,[]); // without parameter.

请注意,该库使用已准备好的语句,因此它没有SQL注入(如果使用参数)

 $ name = \" O\'hara \" ;
$ values = $ con -> runRawQuery ( \" select * from table where name=:name \" ,[ \' name \' => $ name ]); // it works.✅
$ values = $ con -> runRawQuery ( \" select * from table where name=? \" ,[ $ name ]); // it works ok.✅
$ values = $ con -> runRawQuery ( \" select * from table where name=\' $ name \' \" ); // it will crash.

2。运行本机PDO语句

使用方法runquery(),我们可以在PDO中执行准备好的语句。当我们想将参数传递给它时,这很有用。 Runquery()需要准备PDO。

除非您已经使用PDO语句,否则不建议使用此方法,并且不想适应所有代码。

PdoOne->prepare($sql);
$productName="Cocacola";
$stmt->bind_param("s",$productName); // s stand for a string. Also i =integer, d = double and b=blob
$rows=$ PdoOne ->runQuery($stmt);
$allRows=$rows->fetch_all(PDO::FETCH_ASSOC);\”>

 $ sql = \" insert into `product`(name) values(?) \" ;
$ stmt = $ PdoOne -> prepare ( $ sql );
$ productName = \" Cocacola \" ;
$ stmt -> bind_param ( \" s \" , $ productName ); // s stand for a string. Also i =integer, d = double and b=blob
$ rows = $ PdoOne -> runQuery ( $ stmt );
$ allRows = $ rows -> fetch_all ( PDO :: FETCH_ASSOC );

3.使用查询构建器运行

您可以使用查询构建器来构建命令。您可以查看有关查询构建器(DQL)的章节,以获取更多信息。

PdoOne->set([\’name\’=>\’cocacola\’])
->from(\’product\’)
->insert();
\”>

 // query builder
$ PdoOne -> set ([ \' name \' => \' cocacola \' ])
    -> from ( \' product \' )
    -> insert ();

4。使用ORM运行

库eftec \\ PdoOne orm允许创建表的[orm] (#orm)。如果您生成了ORM,则可以使用下一个代码

ProductRepo:: toList ([ \' category \' => \' drink \' ]);

其中productrepo是使用ORM生成的服务类。

5。以不同的模式运行查询

默认情况下, PdoOne在模式pdo :: fetch_assoc中执行查询,您可以通过运行查询来更改为:

 $ pdo -> setFechMode ( PDO :: FETCH_CLASS , \' stdClass \' )-> runRawQuery ( $ query );
// or you can run as
$ pdo -> runRawQuery ( $ query , null , true , false , null , PDO :: FETCH_CLASS , \' stdClass \' )

如何使用日期值?

PdoOne允许5种类型的日期。

  • SQL格式是将日期存储到数据库中的格式。这取决于数据库的类型。例如,MySQL可以使用格式YMD。

  • 人类格式是最终用户看起来我们日期的格式。

  • ISO日期格式。这是如何运输和序列化值的格式。

  • 时间戳:它计算1-1-1970之后的秒数

  • 类 / PHP类:这是一个日期对象。

如何运行交易?

有3种运行交易的方法:

方法 描述
startTransaction() 它开始交易。根据类型数据库的不同,它可以堆叠。
犯罪() 提交(并关闭)交易
回滚() 回滚(并关闭)交易

例子:

PdoOne->startTransaction();
$result=$ PdoOne ->runRawQuery($sql,[\’Fanta\’=>$productName],false);
$ PdoOne ->commit(); // transaction ok
} catch (Exception $e) {
$ PdoOne ->rollback(false); // error, transaction cancelled, the false means that it doesn\’t throw an exception if we want rollback.
}\”>

 try {
    $ sql = \" insert into `product`(name) values(?) \" ;
    $ PdoOne -> startTransaction ();
    $ result = $ PdoOne -> runRawQuery ( $ sql ,[ \' Fanta \' => $ productName ], false );
    $ PdoOne -> commit (); // transaction ok
} catch ( Exception $ e ) {
    $ PdoOne -> rollback ( false ); // error, transaction cancelled, the false means that it doesn\'t throw an exception if we want rollback.
}

自定义查询

tableexist($ tableName)

如果表格存在(当前数据库/架构),则返回true

StatValue($ tableName,$ columnname)

返回表的列的统计信息(作为数组)。

 $ stats = $ PdoOne -> statValue ( \' actor \' , \' actor_id \' );
最小 最大限度 avg 数数
1 205 103.0000 21115 205

列Ttable($ tableName)

返回表的所有列

 $ result = $ PdoOne -> columnTable ( \' actor \' );
colname Coltype 结肠化 Colpres colscale ISKEY 现有人士
actor_id 小网 5 0 1 1
Varchar 45 0 0
Varchar 45 0 0
last_update 时间戳 0 0

ExourneKeyTable($ tableName)

返回表的所有外键(源表)

createtable($ tableName,$ definity,$ priendarkey = null,$ extair ='',$ extairoutside ='')

使用定义和主键创建表。

  • $定义定义是一个关联数组,其名称为键,定义为值。
  • primarykey可能是字符串或关联数组。
    • 如果是字符串,则是主键的名称,示例“ user_id”;
    • 如果它是一个关联阵列,则可以用来定义主键,唯一,键和外键:
      • 'key_name'=>'主键'
      • 'key_name'=>'键'
      • 'key_name'=>'唯一键'
      • 'key_name'=>'外键参考tableerf(colref)…'
  • $ extra它在表的定义内定义了一个额外的定义。
  • Extraoutsed它定义了表格定义后的额外定义。

注意:您可以通过执行CLI(输出classcode)来生成代码使用现有表创建表
php PdoOne .php -database mysql -Server 127.0.0.1-用户根-PWD ABC.123 -DB Sakila -Input Film -Output Classcode

示例:( mysql)

 $ pdo -> createTable ( \' film \' ,                                                                                                
    [                                                                                                                    
        \" film_id \" => \" smallint unsigned not null auto_increment \" ,                                                        
        \" title \" => \" varchar(255) not null \" ,                                                                              
        \" description \" => \" text \" ,                                                                                         
        \" release_year \" => \" year \" ,                                                                                        
        \" language_id \" => \" tinyint unsigned not null \" ,                                                                    
        \" original_language_id \" => \" tinyint unsigned \" ,                                                                    
        \" rental_duration \" => \" tinyint unsigned not null default \'3\' \" ,                                                    
        \" rental_rate \" => \" decimal(4,2) not null default \'4.99\' \" ,                                                         
        \" length \" => \" smallint unsigned \" ,                                                                                 
        \" replacement_cost \" => \" decimal(5,2) not null default \'19.99\' \" ,                                                   
        \" rating \" => \" enum(\'G\',\'PG\',\'PG-13\',\'R\',\'NC-17\') default \'G\' \" ,                                                    
        \" special_features \" => \" set(\'Trailers\',\'Commentaries\',\'Deleted Scenes\',\'Behind the Scenes\') \" ,                     
        \" last_update \" => \" timestamp not null default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP \"                      
    ],[                                                                                                                  
        \" film_id \" => \" PRIMARY KEY \" ,                                                                                      
        \" title \" => \" KEY \" ,                                                                                                
        \" language_id \" => \" FOREIGN KEY REFERENCES`language`(`language_id`) ON UPDATE CASCADE \" ,                            
        \" original_language_id \" => \" FOREIGN KEY REFERENCES`language`(`language_id`) ON UPDATE CASCADE \"                    
    ]);                                                                                                                  
 $ pdo -> createTable ( \' film \' ,                                                                                                
    [                                                                                                                    
        \" film_id \" => \" smallint unsigned not null auto_increment \" ,                                                        
        \" title \" => \" varchar(255) not null \" ,                                                                              
        \" description \" => \" text \" ,                                                                                         
        \" release_year \" => \" year \" ,                                                                                        
        \" language_id \" => \" tinyint unsigned not null \" ,                                                                    
        \" original_language_id \" => \" tinyint unsigned \" ,                                                                    
        \" rental_duration \" => \" tinyint unsigned not null default \'3\' \" ,                                                    
        \" rental_rate \" => \" decimal(4,2) not null default \'4.99\' \" ,                                                         
        \" length \" => \" smallint unsigned \" ,                                                                                 
        \" replacement_cost \" => \" decimal(5,2) not null default \'19.99\' \" ,                                                   
        \" rating \" => \" enum(\'G\',\'PG\',\'PG-13\',\'R\',\'NC-17\') default \'G\' \" ,                                                    
        \" special_features \" => \" set(\'Trailers\',\'Commentaries\',\'Deleted Scenes\',\'Behind the Scenes\') \" ,                     
        \" last_update \" => \" timestamp not null default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP \"                      
    ], \' film_id \' );                                                                                                                  

示例(SQLSRV)

 $ pdo -> createTable ( \' film \' ,
   [
       \" film_id \" => \" int NOT NULL IDENTITY(1,1) \" ,
       \" title \" => \" varchar(255) NOT NULL \" ,
       \" description \" => \" text(2147483647) DEFAULT (NULL) \" ,
       \" release_year \" => \" varchar(4) \" ,
       \" language_id \" => \" tinyint NOT NULL \" ,
       \" original_language_id \" => \" tinyint DEFAULT (NULL) \" ,
       \" rental_duration \" => \" tinyint NOT NULL DEFAULT ((3)) \" ,
       \" rental_rate \" => \" decimal(4,2) NOT NULL DEFAULT ((4.99)) \" ,
       \" length \" => \" smallint DEFAULT (NULL) \" ,
       \" replacement_cost \" => \" decimal(5,2) NOT NULL DEFAULT ((19.99)) \" ,
       \" rating \" => \" varchar(10) DEFAULT (\'G\') \" ,
       \" special_features \" => \" varchar(255) DEFAULT (NULL) \" ,
       \" last_update \" => \" datetime NOT NULL DEFAULT (getdate()) \"
   ],[
       \" language_id \" => \" FOREIGN KEY REFERENCES language(language_id) \" ,
       \" original_language_id \" => \" FOREIGN KEY REFERENCES language(language_id) \" ,
       \" film_id \" => \" PRIMARY KEY \"
   ]);

tablesorted($ maxloop = 5,$ returnproblems = false,$ debugtrace = false)

它返回按依赖项订购的表的列表(从无依赖到更依赖)

注意:此操作不是万无一失的,因为桌子可能具有圆形参考。

PdoOne(\’sqlsrv\’, "(local)\\sqlexpress", "sa", "abc.123", "sakila");
$dao->open();
echo "<pre>";
var_dump($dao->tableSorted(3, false, true)); // it returns the tables sortered
var_dump($dao->tableSorted(3, true, true)); // it returns all the tables that can\’t be sortered
echo "</pre>";\”>

 $ dao = new PdoOne ( \' sqlsrv \' , \" (local)\\sqlexpress \" , \" sa \" , \" abc.123 \" , \" sakila \" );
$ dao -> open ();
echo \" <pre> \" ;
var_dump ( $ dao -> tableSorted ( 3 , false , true )); // it returns the tables sortered
var_dump ( $ dao -> tableSorted ( 3 , true , true )); // it returns all the tables that can\'t be sortered
echo \" </pre> \" ;

可验证的Eftable($ pdoinstance,$ tablename,$ deftable,$ deftablekey)

如果表与值相关的定义匹配,则验证表。

PdoOne (),self::TABLE,$def,$keys));\”>

 $def=[
       \"film_id\" => \"int NOT NULL IDENTITY(1,1)\",
       \"title\" => \"varchar(255) NOT NULL\",
       \"description\" => \"text(2147483647) DEFAULT (NULL)\",
       \"release_year\" => \"varchar(4)\",
       \"language_id\" => \"tinyint NOT NULL\",
       \"original_language_id\" => \"tinyint DEFAULT (NULL)\",
       \"rental_duration\" => \"tinyint NOT NULL DEFAULT ((3))\",
       \"rental_rate\" => \"decimal(4,2) NOT NULL DEFAULT ((4.99))\",
       \"length\" => \"smallint DEFAULT (NULL)\",
       \"replacement_cost\" => \"decimal(5,2) NOT NULL DEFAULT ((19.99))\",
       \"rating\" => \"varchar(10) DEFAULT (\'G\')\",
       \"special_features\" => \"varchar(255) DEFAULT (NULL)\",
       \"last_update\" => \"datetime NOT NULL DEFAULT (getdate())\"
   ];
$keys=[
       \"language_id\" => \"FOREIGN KEY REFERENCES language(language_id)\",
       \"original_language_id\" => \"FOREIGN KEY REFERENCES language(language_id)\",
       \"film_id\" => \"PRIMARY KEY\"
   ]; 
   
var_dump( PdoOne ::validateDefTable(self::get PdoOne (),self::TABLE,$def,$keys));

外键

它返回桌子的所有外键。

 $ result = $ PdoOne -> foreignKeyTable ( \' actor \' );
同盟国 tablem Colrem
customer_id 顾客 customer_id
lental_id 租金 lental_id
Staff_ID 职员 Staff_ID

查询构建器(DQL)

您还可以构建程序查询。

例子:

PdoOne->select("*")->from("producttype")
->where(\’name=?\’, [ \’Cocacola\’])
->where(\’idproducttype=?\’, [ 1])
->toList(); \”>

 $ results = $ PdoOne -> select ( \" * \" )-> from ( \" producttype \" )
    -> where ( \' name=? \' , [ \' Cocacola \' ])
    -> where ( \' idproducttype=? \' , [ 1 ])
    -> toList ();   

选择($列)

指示要返回的列。该参数是SQL命令,因此它允许数据库支持(包括功能,常数,操作员,别名等)的任何操作。

 $ results = $ PdoOne -> select ( \" col1,col2 \" ); //...

生成查询:选择COL1,COL2 ….

 $ results = $ PdoOne -> select ( \" select * from table \" ); //->...

生成查询:从表中选择 * *

计数($ sql,$ arg ='*')

生成一个返回值计数的查询。这是方法选择()的宏

PdoOne->count(\’from table where condition=1\’); // select count(*) from table where c..
$result = $ PdoOne ->count()->from(\’table\’)->where(\’condition=?\’,[1]); // select count(*) from table where c..
$result = $ PdoOne ->count(\’from table\’,\’col1\’); // select count(col1) from table
$result = $ PdoOne ->count()->from(\’table\’); // select count(*) from table\”>

 $ result = $ PdoOne -> count ( \' from table where condition=1 \' ); // select count(*) from table where c..
$ result = $ PdoOne -> count ()-> from ( \' table \' )-> where ( \' condition=? \' ,[ 1 ]); // select count(*) from table where c..
$ result = $ PdoOne -> count ( \' from table \' , \' col1 \' ); // select count(col1) from table
$ result = $ PdoOne -> count ()-> from ( \' table \' ); // select count(*) from table

min($ sql,$ arg ='*')

生成一个查询,该查询返回列的最小值。如

下载源码

通过命令行克隆项目:

git clone https://github.com/EFTEC/PdoOne.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 PdoOne https://www.zuozi.net/31774.html

anchr
上一篇: anchr
netty codec fcgi
下一篇: netty codec fcgi
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务