ExPDO Full Documentation

ExPDO is an extended PDO class for MySQL, providing convenient, secure, and flexible methods for database operations. It supports associative arrays, objects, parameterized queries, and includes helpers for SQL generation.

1. Constructor & Connection

use Nobanno\ExPDO;
$db = new ExPDO('localhost', 'database', 'user', 'password');

2. Insert Methods

// Parameterized insert
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$db->executeInsert($sql, ['name' => 'Alice', 'email' => 'alice@example.com']);

// Auto insert
$db->insertRecord('users', ['name' => 'Bob', 'email' => 'bob@example.com']);

3. Select Methods

// Fetch single user as assoc array
$user = $db->fetchAssoc("SELECT * FROM users WHERE id = :id", ['id' => 1]);

// Fetch all users as objects
$users = $db->fetchObjects("SELECT * FROM users");

4. Update Methods

// Parameterized update
$sql = "UPDATE users SET name = :name WHERE id = :id";
$db->executeUpdate($sql, ['name' => 'Alice', 'id' => 1]);

// Auto update
$db->updateRecord('users', ['name' => 'Bob'], ['id' => 2]);

5. Delete Methods

// Parameterized delete
$sql = "DELETE FROM users WHERE id = :id";
$db->delete($sql, ['id' => 1]);

6. SQL Preparation Helpers

// Example: Generate insert SQL
$sql = ExPDO::prepareInsertSql(['name' => 'Alice', 'email' => 'alice@example.com'], 'users');
// Returns: INSERT INTO users(`name`, `email`) VALUES(:name, :email)

7. Utility & Error Handling

8. Best Practices

9. Example: Full CRUD

// Create
$userId = $db->insertRecord('users', ['name' => 'Alice', 'email' => 'alice@example.com']);
// Read
$user = $db->fetchAssoc('SELECT * FROM users WHERE id = :id', ['id' => $userId]);
// Update
$db->updateRecord('users', ['name' => 'Alicia'], ['id' => $userId]);
// Delete
$db->delete('DELETE FROM users WHERE id = :id', ['id' => $userId]);

10. References