PHPackages                             00f100/fcphp-datasource-mysql - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. 00f100/fcphp-datasource-mysql

ActivePackage[Database &amp; ORM](/categories/database)

00f100/fcphp-datasource-mysql
=============================

Package to manipulate datasource MySQL

028PHP

Since Dec 3Pushed 7y ago1 watchersCompare

[ Source](https://github.com/00F100/fcphp-datasource-mysql)[ Packagist](https://packagist.org/packages/00f100/fcphp-datasource-mysql)[ RSS](/packages/00f100-fcphp-datasource-mysql/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

FcPhp Datasource MySQL
======================

[](#fcphp-datasource-mysql)

Class to manipulate Datasource MySQL

[![Build Status](https://camo.githubusercontent.com/f25e37f6b3cf96fcb8f198ed8acafd5fe273085f0acc2eef3460d3a4aad16590/68747470733a2f2f7472617669732d63692e6f72672f3030463130302f66637068702d64617461736f757263652d6d7973716c2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/00F100/fcphp-datasource-mysql) [![codecov](https://camo.githubusercontent.com/40155058b95063c982a868752a3d81d4f3045d8d74d53b8805d0b3c576cd607b/68747470733a2f2f636f6465636f762e696f2f67682f3030463130302f66637068702d64617461736f757263652d6d7973716c2f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/00F100/fcphp-datasource-mysql)

[![PHP Version](https://camo.githubusercontent.com/e7480c36bed8e10999de4e8830ec5a5545d628e25c10249547d29ee329483cc7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f3030663130302f66637068702d64617461736f757263652d6d7973716c2e737667)](https://packagist.org/packages/00F100/fcphp-datasource-mysql) [![Packagist Version](https://camo.githubusercontent.com/7743f41bdec5fda9ace61f2e9223ae2f9ecd4125571c48daf3ad88544a6d7b51/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f3030663130302f66637068702d64617461736f757263652d6d7973716c2e737667)](https://packagist.org/packages/00F100/fcphp-datasource-mysql) [![Total Downloads](https://camo.githubusercontent.com/031d3d2c328d30787e70283f994761821590bb2d34f169441e2788dc51e029dc/68747470733a2f2f706f7365722e707567782e6f72672f3030463130302f66637068702d64617461736f757263652d6d7973716c2f646f776e6c6f616473)](https://packagist.org/packages/00F100/fcphp-datasource-mysql)

How to install
--------------

[](#how-to-install)

Composer:

```
$ composer require 00f100/fcphp-datasource-mysql
```

or add in composer.json

```
{
    "require": {
        "00f100/fcphp-datasource-mysql": "*"
    }
}
```

How to use
----------

[](#how-to-use)

```
use FcPhp\Di\Facades\DiFacade;
use FcPhp\Datasource\Factory;
use FcPhp\Datasource\Strategy;
use FcPhp\Datasource\Interfaces\ICriteria;
use FcPhp\Datasource\MySQL\MySQL;

// MySQL Instance

$dataConnection = [
    'host' => '',
    'port' => '',
    'username' => '',
    'password' => '',
    'database' => '',
];

$instance = new MySQL('mysql', $dataConnection);

// to Query Instance ...

$strategies = [
    'mysql' => 'FcPhp/Datasource/MySQL/Strategies/MySQLStrategy',
];
$criterias = [
    'mysql' => 'FcPhp/Datasource/MySQL/Criterias/MySQL',
];
$di = DiFacade::getInstance();
$factory = new Factory($strategies, $criterias, $di);
$strategy = new Strategy('mysql', $factory);

$query = new Query($strategy);
```

### SELECT

[](#select)

```
// Configure query

// SELECT t.field
//  FROM table AS t
//  LEFT JOIN table AS t2 ON t2.field = t.field AND t2.field = "string"
//  WHERE (
//      (
//          campo = 500 AND
//          campo2 = 500 AND (
//              field = "value" OR
//              field2 < "value2"
//          ) AND
//          campo3 = "abc" AND
//          campo3 = "abc" AND (
//              field = "value" OR
//              field2 < "value123122"
//          ) AND
//          campo3 IN (10,20,30)
//      )
//  )

$query->select('t.field')
    ->from('table', 't')
    ->join('LEFT', ['t2' => 'table'], function(ICriteria $criteria) {
        $criteria->condition('t2.field', '=', 't.field', true);
        $criteria->condition('t2.field', '=', 'string');
    })
    ->where(function(ICriteria $criteria) {
    $criteria->and(function(ICriteria $criteria) {
        $criteria->condition('campo', '=', 500);
        $criteria->condition('campo2', '=', 500);
        $criteria->or(function(ICriteria $criteria) {
            $criteria->condition('field', '=', 'value');
            $criteria->condition('field2', '
