naukakodu / php-mysql-connection
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/naukakodu/php-mysql-connection
Requires
- php: >=8.3
- ext-pdo: *
Requires (Dev)
- mockery/mockery: ^1.6
- pestphp/pest: ^3.8
- symfony/var-dumper: ^7.3
README
composer require naukakodu/php-mysql-connection
Features
The library offers a Database class with the following capabilities:
- Establishing a secure PDO connection with a MySQL database
- Executing SQL queries with prepared statements support
- Retrieving single rows or entire result sets
- Handling data insertion with the ability to retrieve the last inserted ID
Connection Usage Examples
Basic Connection
use Naukakodu\PhpMysqlConnection\Database; try { $db = new Database('localhost', 'database_name', 'username', 'password'); // ... } catch (Exception $e) { echo $e->getMessage(); }
Retrieving Data
// Fetching all rows $users = $db->fetchAll("SELECT * FROM users WHERE status = ?", ['active']); // Fetching a single row $user = $db->fetch("SELECT * FROM users WHERE id = ?", [1]);
Inserting Data
$userId = $db->insert( "INSERT INTO users (name, email, created_at) VALUES (?, ?, NOW())", ['John Smith', 'john@example.com'] ); echo "Added user with ID: " . $userId;
Executing Other Queries
$db->query("UPDATE users SET status = ? WHERE id = ?", ['inactive', 5]);
Accessing the PDO Object
$pdo = $db->getConnection(); // ...
Configuration
The default character set is utf8mb4. You can change it during initialization:
$db = new Database('localhost', 'database_name', 'username', 'password', 'utf8');
QueryBuilder Usage Examples
Getting QueryBuilder
$database = new Database('localhost', 'database_name', 'username', 'password'); $queryBuilder = $database->getQueryBuilder();
Available Query Methods
Join
$queryBuilder ->table('users') ->join('tasks', 'users.id', '=', 'tasks.user_id');
Limit
$queryBuilder ->table('users') ->limit(10);
OrderBy Asc
$queryBuilder ->table('users') ->orderBy('name'); // ASC
OrderBy Desc
$queryBuilder ->table('users') ->orderBy('name', 'desc'); // DESC
Where
$queryBuilder ->table('users') ->where('name', 'John');
Executing Query
$queryBuilder ->table('users') ->where('name', 'John') ->execute(); // Returning the array of rows
Getting raw SQL
$queryBuilder ->table('users') ->where('name', 'John') ->toSql();