2017 © Pedro Pelรกez
 

library mysqlilib

Simple MySQLi Library

image

jonathanbak/mysqlilib

Simple MySQLi Library

  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 16 % Grown

The README.md

MySQLiLib

Build Status codecov PHP Version, (*1)

๐Ÿ’ก ๊ฐ€๋ณ๊ณ  ์‹ค๋ฌด ์นœํ™”์ ์ธ PHP MySQL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
PHP 5.6๋ถ€ํ„ฐ PHP 8.3๊นŒ์ง€ ํญ๋„“๊ฒŒ ํ˜ธํ™˜๋˜๋ฉฐ, ๋‹จ์ˆœํ•˜๊ณ  ์ง๊ด€์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., (*2)


โœจ Features

  • mysqli ๊ธฐ๋ฐ˜ ๊ฒฝ๋Ÿ‰ ORM ์Šคํƒ€์ผ ๊ตฌํ˜„
  • :param, ? ์Šคํƒ€์ผ์˜ ์œ ์—ฐํ•œ ๋ฐ”์ธ๋”ฉ ์ง€์›
  • Prepared Statement ์ž๋™ ์ฒ˜๋ฆฌ
  • Iterator ๊ธฐ๋ฐ˜ fetch() ์ง€์›
  • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๊ธฐ๋ฐ˜์˜ ์•ˆ์ •์„ฑ ํ™•๋ณด
  • FakeDb ๋ฅผ ํ†ตํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ

๐Ÿ› ๏ธ Installation

composer require jonathanbak/mysqlilib

๐Ÿ“ฆ Usage

Connect & Fetch

$DB = new MySQLiLib($host, $user, $password, $dbName);
$query = "SELECT * FROM test";
$row = $DB->fetch($query);
var_dump($row);

๐Ÿ” SELECT with Parameters: fetch() vs fetchOne()

๋‘ ํ•จ์ˆ˜ ๋ชจ๋‘ ๋‹จ์ผ row๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, ๋™์ž‘ ๋ฐฉ์‹์—๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค., (*3)

ํ•จ์ˆ˜ ๋ฐ˜ํ™˜ ๋™์ž‘ ๋ฐ˜๋ณต ํ˜ธ์ถœ ์‹œ ๋™์ž‘ ์ ํ•ฉํ•œ ์ƒํ™ฉ
fetch() ํ•œ ์ค„ ๋ฐ˜ํ™˜ ๋‹ค์Œ ์ค„ ์ˆœ์ฐจ ๋ฐ˜ํ™˜ ์—ฌ๋Ÿฌ ์ค„ ์ค‘์—์„œ ๋ฐ˜๋ณต ์ฒ˜๋ฆฌ ์‹œ
fetchOne() ํ•œ ์ค„ ๋ฐ˜ํ™˜ ๋งค๋ฒˆ ๋™์ผํ•œ ๊ฒฐ๊ณผ ๋‹จ ํ•œ ์ค„๋งŒ ๊ฐ€์ ธ์˜ฌ ๋•Œ

โœ… fetch() - ๋ฐ˜๋ณต ํ˜ธ์ถœ๋กœ ๋‹ค์Œ row ์ˆœ์ฐจ ์ ‘๊ทผ

$query = "SELECT * FROM test WHERE id < ?";
$row1 = $DB->fetch($query, [5]);
$row2 = $DB->fetch($query, [5]);

var_dump($row1 === $row2); // false (๊ฐ™์€ ์ฟผ๋ฆฌ โ†’ ๋‹ค์Œ๋ฒˆ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ด)
  • ๋‚ด๋ถ€์ ์œผ๋กœ mysqli_result๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์ฝ์–ด์˜ค๋ฉฐ ์ดํ„ฐ๋ ˆ์ดํ„ฐ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ™์€ ์ฟผ๋ฆฌ/ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๋„ ๋งค ํ˜ธ์ถœ๋งˆ๋‹ค ๋‹ค์Œ ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋” ์ด์ƒ ์—†์œผ๋ฉด null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

โœ… fetchOne() - ํ•ญ์ƒ ๋‹จ ํ•œ ์ค„๋งŒ ๋ฐ˜ํ™˜

$query = "SELECT * FROM test WHERE id < ?";
$row1 = $DB->fetchOne($query, [5]);
$row2 = $DB->fetchOne($query, [5]);

var_dump($row1 === $row2); // true (๊ฐ™์€ ์ฟผ๋ฆฌ โ†’ ๊ฐ™์€ ๊ฒฐ๊ณผ)
  • ๋‚ด๋ถ€์ ์œผ๋กœ query()๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ fetch_assoc()์œผ๋กœ ์ฆ‰์‹œ ๊ฐ€์ ธ์˜จ ๋’ค ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋งค ํ˜ธ์ถœ๋งˆ๋‹ค ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ์กฐ๊ฑด์ด ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ row๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

Fetch Multiple Rows (Iterator)

$query = "SELECT * FROM test WHERE id = ?";
$rows = [];
while ($row = $DB->fetch($query, [11])) {
    $rows[] = $row;
}

LIKE Query

$query = "SELECT * FROM test WHERE name LIKE '??%'";
$rows = [];
while ($row = $DB->fetch($query, ['ํ…Œ์ŠคํŠธ'])) {
    $rows[] = $row;
}

LIKE ๊ฒ€์ƒ‰ ์˜ˆ์ œ (? ํ•œ ๊ฐœ๋งŒ ์‚ฌ์šฉ)

$query = "SELECT * FROM test WHERE name LIKE ?";
$rows = [];
while ($row = $DB->fetch($query, ['ํ…Œ์ŠคํŠธ%'])) {
    $rows[] = $row;
}
var_dump($rows);

๋ฌธ์ž์—ด ์ „์ฒด๋ฅผ ๋ฐ”์ธ๋”ฉํ•  ๊ฒฝ์šฐ 'ํ…Œ์ŠคํŠธ%'์ฒ˜๋Ÿผ ์™€์ผ๋“œ์นด๋“œ๋ฅผ ํฌํ•จ์‹œ์ผœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค., (*4)


๐Ÿท๏ธ Named Parameter (:param) ์˜ˆ์ œ

$query = "SELECT * FROM test WHERE id > :id AND name = :name";
$params = [
    'id' => 10,
    'name' => 'ํ™๊ธธ๋™'
];
$rows = [];
while ($row = $DB->fetch($query, $params)) {
    $rows[] = $row;
}
var_dump($rows);

:param ์Šคํƒ€์ผ์€ ๋‚ด๋ถ€์ ์œผ๋กœ ?๋กœ ์น˜ํ™˜๋˜๋ฉฐ, ๋ฐฐ์—ด์˜ ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž๋™ ์ •๋ ฌํ•˜์—ฌ ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค., (*5)


INSERT / UPDATE / DELETE

$DB->query("INSERT INTO test SET id = ?, reg_date = ?", [33, date("Y-m-d H:i:s")]);
$DB->query("DELETE FROM test WHERE id = ?", [33]);

Exception Handling

try {
    $DB->query("INSERT INTO test SET id = ?", [33]);
} catch (\MySQLiLib\Exception $e) {
    echo "์—๋Ÿฌ: " . $e->getMessage();
}

Using bind_param()

$DB->bind_param('i');
$DB->query("INSERT INTO test SET id = ?, reg_date = ?", [33, date("Y-m-d H:i:s")]);

$DB->bind_param('i');
$DB->query("DELETE FROM test WHERE id = ?", [33]);

๐Ÿ“ง Contact

์‚ฌ์šฉ ์ค‘ ๋ฌธ์˜์‚ฌํ•ญ์ด๋‚˜ ๋ฒ„๊ทธ ์ œ๋ณด๋Š” ์–ธ์ œ๋“ ์ง€ ์•„๋ž˜ ์ด๋ฉ”์ผ๋กœ ์—ฐ๋ฝ์ฃผ์„ธ์š”:, (*6)

๐Ÿ“จ jonathanbak@gmail.com, (*7)


๐Ÿงพ License

MIT License., (*8)

The Versions

14/05 2018

dev-master

9999999-dev http://github.com/jonathanbak/MySQLiLib

Simple MySQLi Library

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

mysqli mysqli library simple db library simple dao

14/05 2018

v1.2.1

1.2.1.0 http://github.com/jonathanbak/MySQLiLib

Simple MySQLi Library

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

mysqli mysqli library simple db library simple dao

26/04 2018

v1.2

1.2.0.0 http://github.com/jonathanbak/MySQLiLib

Simple MySQLi Library

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

mysqli mysqli library simple db library simple dao

19/12 2017

v1.1

1.1.0.0 http://github.com/jonathanbak/MySQLiLib

Simple MySQLi Library

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

mysqli mysqli library simple db library simple dao

31/01 2017

v1.0

1.0.0.0 http://github.com/jonathanbak/MySQLiLib

Simple MySQLi Library

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

mysqli mysqli library simple db library simple dao