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.
use Nobanno\ExPDO;
$db = new ExPDO('localhost', 'database', 'user', 'password');
ERRMODE_EXCEPTION, disables emulated prepares, uses utf8, and buffered queries.// 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']);
// 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");
// 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]);
// Parameterized delete
$sql = "DELETE FROM users WHERE id = :id";
$db->delete($sql, ['id' => 1]);
// Example: Generate insert SQL
$sql = ExPDO::prepareInsertSql(['name' => 'Alice', 'email' => 'alice@example.com'], 'users');
// Returns: INSERT INTO users(`name`, `email`) VALUES(:name, :email)
PDOException with detailed backtrace on error.insertRecord, updateRecord) for convenience and safety.// 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]);