PHP code example of sebastianguzmanmorla / lili-db
1. Go to this page and download the library: Download sebastianguzmanmorla/lili-db library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sebastianguzmanmorla / lili-db example snippets
use DateTime;
use LiliDb\Model;
use LiliDb\MySql\Attributes\Field as MySqlField;
use LiliDb\MySql\Attributes\Key as MySqlKey;
use LiliDb\MySql\Types\Numeric\DbBoolean as MySqlBoolean;
use LiliDb\MySql\Types\String\DbVarchar as MySqlVarchar;
use LiliDb\MySql\Types\Time\DbDateTime;
use LiliDb\PostgreSql\Attributes\Field as PostgreSqlField;
use LiliDb\PostgreSql\Attributes\Key as PostgreSqlKey;
use LiliDb\PostgreSql\Types\DbBoolean as PostgreBoolean;
use LiliDb\PostgreSql\Types\String\DbVarchar as PostgreSqlVarchar;
use LiliDb\PostgreSql\Types\Time\DbTimestamp;
use LiliDb\Token;
class TestTable
{
use Model;
#[MySqlKey(Name: 'Id')]
#[PostgreSqlKey(Name: 'Id')]
public ?int $TestId;
#[MySqlField(Type: new MySqlVarchar(50), Name: 'Name', Default: 'Test')]
#[PostgreSqlField(Type: new PostgreSqlVarchar(50), Name: 'TestName', Default: 'Test')]
public ?string $TestName;
#[MySqlField(Type: new DbDateTime(), Default: Token::DateTimeNow)]
#[PostgreSqlField(Type: new DbTimestamp(), Default: Token::DateTimeNow)]
public ?DateTime $TestDateTime;
#[MySqlField(
Name: 'State',
Type: new MySqlBoolean(),
Default: true,
)]
#[PostgreSqlField(
Name: 'State',
Type: new PostgreBoolean(),
Default: true,
)]
public ?bool $State;
}
use TestTable;
use LiliDb\Database;
use LiliDb\Interfaces\ITable;
use LiliDb\MySql\Attributes\Table as MySqlTable;
use LiliDb\PostgreSql\Attributes\Table as PostgreSqlTable;
class TestDatabase extends Database
{
#[MySqlTable(Model: TestTable::class, Name: 'A')]
#[PostgreSqlTable(Model: TestTable::class, Schema: 'public', Name: 'TestTable')]
public ITable $TestTable;
}
use TestDatabase;
use LiliDb\MySql\Connection as MySqlConnection;
$Connection = new MySqlConnection(
Hostname: getenv('MYSQL_HOST'),
Port: getenv('MYSQL_PORT'),
Database: getenv('MYSQL_DATABASE'),
Username: getenv('MYSQL_USERNAME'),
Password: getenv('MYSQL_PASSWORD')
);
$Database = new TestDatabase($Connection, getenv('MYSQL_DATABASE'));
use TestDatabase;
use LiliDb\PostgreSql\Connection as PostgreSqlConnection;
$Connection = new PostgreSqlConnection(
Hostname: getenv('POSTGRES_HOST'),
Port: getenv('POSTGRES_PORT'),
Database: getenv('POSTGRES_DATABASE'),
Username: getenv('POSTGRES_USERNAME'),
Password: getenv('POSTGRES_PASSWORD')
);
$Database = new TestDatabase($Connection, getenv('POSTGRES_DATABASE'));
use DateTime;
class TestSelect
{
public function __construct(
public ?int $TestId,
public ?string $TestName,
public ?DateTime $TestDateTime,
public ?int $Test2Id,
public ?int $Test2Number,
) {
}
}
sql
SELECT
`A`.`Id`,
`B`.`D`,
NOW() as Now
FROM `A`
INNER JOIN `B` ON `B`.`B` = `A`.`Id` AND `B`.`D` = TRUE
ORDER BY
`A`.`Name`
sql
SELECT
`A`.`Id`,
`A`.`Name`,
`A`.`TestDateTime`,
`B`.`Id`,
`B`.`C`
FROM
`A`
LEFT JOIN `B` ON `B`.`B` = `A`.`Id` OR `A`.`Id` BETWEEN `B`.`C` AND `B`.`C`
WHERE
(
`A`.`TestDateTime` BETWEEN '2025-05-22 03:52:25' AND '2025-05-22 04:22:25'
OR `A`.`Name` LIKE '%a%'
OR `A`.`Name` NOT LIKE 'a%'
OR `B`.`C` IS NULL
OR `B`.`C` IS NOT NULL
OR `B`.`C` BETWEEN 9 AND 12
OR `B`.`D` = TRUE
OR `B`.`D` = TRUE
OR `B`.`C` = 11
OR (
`B`.`D` = `B`.`D`
OR `B`.`D` = FALSE
OR `B`.`D` = FALSE
OR `B`.`D` <> FALSE
OR `B`.`D` = TRUE
OR `B`.`D` = FALSE
)
)
ORDER BY
`A`.`Name`,
`A`.`TestDateTime` DESC
LIMIT 0, 1
sql
SELECT
"TestTable"."Id",
"TestTable"."TestName",
"TestTable"."TestDateTime",
"TestTable2"."Test2Id",
"TestTable2"."Test2Number"
FROM "public"."TestTable"
LEFT JOIN "public"."TestTable2" ON "TestTable2"."TestId" = "TestTable"."Id" OR "TestTable"."Id" BETWEEN "TestTable2"."Test2Number" AND "TestTable2"."Test2Number"
WHERE
(
"TestTable"."TestDateTime" BETWEEN '2025-05-22 03:52:25' AND '2025-05-22 04:22:25'
OR "TestTable"."TestName" LIKE '%a%'
OR "TestTable"."TestName" NOT LIKE 'a%'
OR "TestTable2"."Test2Number" IS NULL
OR "TestTable2"."Test2Number" IS NOT NULL
OR "TestTable2"."Test2Number" BETWEEN 9 AND 12
OR "TestTable2"."Test2State" = TRUE
OR "TestTable2"."Test2State" = TRUE
OR "TestTable2"."Test2Number" = 11
OR (
"TestTable2"."Test2State" = "TestTable2"."Test2State"
OR "TestTable2"."Test2State" = FALSE
OR "TestTable2"."Test2State" = FALSE
OR "TestTable2"."Test2State" <> FALSE
OR "TestTable2"."Test2State" = TRUE
OR "TestTable2"."Test2State" = FALSE
)
)
ORDER BY
"TestTable"."TestName",
"TestTable"."TestDateTime" DESC
LIMIT
1 OFFSET 0
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.