PHPackages                             jonathanbak/mysqlilib - 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. jonathanbak/mysqlilib

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

jonathanbak/mysqlilib
=====================

Simple MySQLi Library

1.4.4(9mo ago)16542MITPHPPHP &gt;=5.6.0CI failing

Since Jan 31Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/jonathanbak/mysqlilib)[ Packagist](https://packagist.org/packages/jonathanbak/mysqlilib)[ Docs](http://github.com/jonathanbak/MySQLiLib)[ RSS](/packages/jonathanbak-mysqlilib/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (1)Versions (23)Used By (2)

MySQLiLib
=========

[](#mysqlilib)

[![Build Status](https://github.com/jonathanbak/mysqlilib/actions/workflows/test.yml/badge.svg)](https://github.com/jonathanbak/mysqlilib/actions/workflows/test.yml)[![codecov](https://camo.githubusercontent.com/c9e63a68c79f4f00ba44cf869d9e05b549b5a7feabbf35f85d418371ba1ab9d3/68747470733a2f2f636f6465636f762e696f2f67682f6a6f6e617468616e62616b2f6d7973716c696c69622f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/jonathanbak/mysqlilib)[![PHP Version](https://camo.githubusercontent.com/c2aa439a283bc3e81ab34f3c74e7e91360ce60a84bc6e3cb9935989b52aa4b89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d352e362532307e253230382e332d626c7565)](https://camo.githubusercontent.com/c2aa439a283bc3e81ab34f3c74e7e91360ce60a84bc6e3cb9935989b52aa4b89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d352e362532307e253230382e332d626c7565)

💡 **가볍고 실무 친화적인 PHP MySQL 라이브러리**
PHP 5.6부터 PHP 8.3까지 폭넓게 호환되며, 단순하고 직관적인 인터페이스로 빠르게 데이터베이스 연동을 구현할 수 있습니다.

---

✨ Features
----------

[](#-features)

- `mysqli` 기반 경량 ORM 스타일 구현
- `:param`, `?` 스타일의 유연한 바인딩 지원
- Prepared Statement 자동 처리
- Iterator 기반 `fetch()` 지원
- 예외 처리 기반의 안정성 확보
- FakeDb 를 통한 단위 테스트 가능

---

🛠️ Installation
---------------

[](#️-installation)

```
composer require jonathanbak/mysqlilib
```

---

📦 Usage
-------

[](#-usage)

### Connect &amp; Fetch

[](#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()`

[](#-select-with-parameters-fetch-vs-fetchone)

두 함수 모두 **단일 row를 반환**하지만, 동작 방식에는 차이가 있습니다.

함수반환 동작반복 호출 시 동작적합한 상황`fetch()`한 줄 반환다음 줄 순차 반환여러 줄 중에서 반복 처리 시`fetchOne()`한 줄 반환매번 동일한 결과단 한 줄만 가져올 때#### ✅ `fetch()` - 반복 호출로 다음 row 순차 접근

[](#-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()` - 항상 단 한 줄만 반환

[](#-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)

[](#fetch-multiple-rows-iterator)

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

### LIKE Query

[](#like-query)

> ⚠️ LIKE 쿼리에서 `??` 치환 방식은 v1.3.0부터 더 이상 지원되지 않습니다.
> 바인딩 값에 `%`를 포함하여 `LIKE ?` 형식으로 사용하세요.

### LIKE 검색 예제 (`?` 한 개만 사용)

[](#like-검색-예제--한-개만-사용)

```
$query = "SELECT * FROM test WHERE name LIKE ?";
$rows = [];
while ($row = $DB->fetch($query, ['테스트%'])) {
    $rows[] = $row;
}
var_dump($rows);
```

> 문자열 전체를 바인딩할 경우 `'테스트%'`처럼 와일드카드를 포함시켜 전달합니다.

---

### 🏷️ Named Parameter (:param) 예제

[](#️-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` 스타일은 내부적으로 `?`로 치환되며, 배열의 키를 기준으로 자동 정렬하여 바인딩됩니다.

---

### INSERT / UPDATE / DELETE

[](#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

[](#exception-handling)

```
try {
    $DB->query("INSERT INTO test SET id = ?", [33]);
} catch (\MySQLiLib\Exception $e) {
    echo "에러: " . $e->getMessage();
}
```

---

### Using `bind_param()`

[](#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
---------

[](#-contact)

사용 중 문의사항이나 버그 제보는 언제든지 아래 이메일로 연락주세요:

📨 ****

---

🧾 License
---------

[](#-license)

MIT License.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance56

Moderate activity, may be stable

Popularity16

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 91.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~157 days

Recently: every ~30 days

Total

21

Last Release

290d ago

PHP version history (2 changes)v1.0PHP &gt;=5.3.0

v1.3.1PHP &gt;=5.6.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/dedc20581039074349473e7d668ee3c563228045644fa1bb14e9529034ffabd3?d=identicon)[Jonathan Bak](/maintainers/Jonathan%20Bak)

---

Top Contributors

[![jonathanbak](https://avatars.githubusercontent.com/u/3095731?v=4)](https://github.com/jonathanbak "jonathanbak (51 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (5 commits)")

---

Tags

mysqlimysqli librarysimple db librarysimple dao

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jonathanbak-mysqlilib/health.svg)

```
[![Health](https://phpackages.com/badges/jonathanbak-mysqlilib/health.svg)](https://phpackages.com/packages/jonathanbak-mysqlilib)
```

###  Alternatives

[aplus/database

Aplus Framework Database Library

3391.6M7](/packages/aplus-database)[sergeytsalkov/meekrodb

The Simple PHP/MySQL Library

346410.5k13](/packages/sergeytsalkov-meekrodb)[ezsql/ezsql

Advance database access library. Make interacting with a database ridiculously easy. An universal interchangeable CRUD system.

86849.1k](/packages/ezsql-ezsql)[jv2222/ezsql

Advance database access library. Make interacting with a database ridiculously easy. An universal interchangeable CRUD system.

87211.6k2](/packages/jv2222-ezsql)[stefangabos/zebra_session

A drop-in replacement for PHP's default session handler which stores session data in a MySQL database, providing better performance, better security and protection against session fixation and session hijacking

176120.7k2](/packages/stefangabos-zebra-session)[stefangabos/zebra_database

An advanced, compact and lightweight MySQL database wrapper library, built around PHP's MySQLi extension.

11712.6k](/packages/stefangabos-zebra-database)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
