zonuexe/tetosql

Simple and secure SQL templating

0.5.5 2022-09-02 16:14 UTC

This package is auto-updated.

Last update: 2024-10-30 01:37:25 UTC


README

Test lang:PHP 8.1 lang:PHP 5.4

PHP Data Objects(PDO) wrapper and SQL Template for PHP

Features

  • PDO Wrapper
  • Query Template
    • Type safe
    • Sequence of values

Manual

Japanese: 憂鬱なSQLのためのアレ、またはPDOと仲良くして枕を高くしてねむる

Syntax

type

  • @int - Integer value (-9223372036854775808 <= n <=9223372036854775807)
  • @int[] - Sequence of integers
  • @string - String
  • @string[] - Sequence of strings
  • @lob - Large OBject
  • @ascdesc - "ASC" or "DESC" or "asc" or "desc"

Example

<?php

namespace MyApp;

use Teto\SQL\Query;

$conn = new \PDO('sqlite:/tmp/db.sq3', null, null, [\PDO::ATTR_PERSISTENT => true]);
$data = Query::execute(
    $conn,
    <<<'SQL'
        SELECT * FROM `users`
        WHERE `status` IN (:statuses@int[])
        LIMIT :offset@int, :limit@int
    SQL,
    [
        ':statuses' => [1, 3],
        ':offset'   => 60,
        ':limit'    => 30,
    ]
)->fetch(\PDO::FETCH_ASSOC);

Copyright

TetoSQL is licensed under Mozilla Public License Version 2.0.

Simple and secure SQL templating
Copyright (c) 2019 USAMI Kenta <tadsan@zonu.me>

PxvSql

TetoSQL is forked (and detuned) from private library of pixiv Inc. that is called PxvSql.

PHP Manual

PDOInterface.php and PDOStatementInterface.php is based on PHP Manual (en).

Copyright © 1997 - 2016 by the PHP Documentation Group. This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution 3.0 License or later. A copy of the Creative Commons Attribution 3.0 license is distributed with this manual. The latest version is presently available at » http://creativecommons.org/licenses/by/3.0/.