{"id":25445507,"url":"https://github.com/shivanraptor/php-db-manager","last_synced_at":"2025-06-15T09:34:04.777Z","repository":{"id":57049593,"uuid":"2252918","full_name":"shivanraptor/PHP-DB-Manager","owner":"shivanraptor","description":"PHP DB Manager aims to provide easy-to-use wrapper for MySQL database.","archived":false,"fork":false,"pushed_at":"2025-03-03T10:03:58.000Z","size":55,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-16T04:09:24.894Z","etag":null,"topics":["mysql-database","php-mysqli","wrapper"],"latest_commit_sha":null,"homepage":"https://yourappapp.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shivanraptor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-08-23T03:22:32.000Z","updated_at":"2025-03-03T10:04:02.000Z","dependencies_parsed_at":"2025-05-16T04:09:27.835Z","dependency_job_id":"910d9663-c374-4d17-9061-8a97e5f4e6ae","html_url":"https://github.com/shivanraptor/PHP-DB-Manager","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/shivanraptor/PHP-DB-Manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanraptor%2FPHP-DB-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanraptor%2FPHP-DB-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanraptor%2FPHP-DB-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanraptor%2FPHP-DB-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shivanraptor","download_url":"https://codeload.github.com/shivanraptor/PHP-DB-Manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivanraptor%2FPHP-DB-Manager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259952348,"owners_count":22936945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mysql-database","php-mysqli","wrapper"],"created_at":"2025-02-17T16:23:17.593Z","updated_at":"2025-06-15T09:34:04.750Z","avatar_url":"https://github.com/shivanraptor.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PHP-DB-Manager\n\n[![LoC](https://tokei.rs/b1/github/shivanraptor/php-db-manager?category=code)](https://tokei.rs/b1/github/shivanraptor/php-db-manager?category=code)\n\nA modern PHP database wrapper for MySQL with prepared statements, connection pooling, and proper error handling.\n\n## Features\n\n- UTF-8/UTF8MB4 Connection Support\n- Prepared Statements by Default\n- Transaction Support\n- Connection Pooling\n- Automatic Retry Mechanism\n- Proper Exception Handling\n- Type Safety\n- PSR-4 Autoloading\n- Modern PHP 7.4+ Features\n\n## Requirements\n\n- PHP 7.4 or higher\n- MySQL 5.7+ or MariaDB 10.3+\n- PHP MySQLi extension\n\n## Installation\n\n### Using Composer\n\n```bash\ncomposer require shivanraptor/php-db-manager\n```\n\n### Manual Installation\n\n1. Download the latest release\n2. Include the autoloader in your project:\n```php\nrequire_once('vendor/autoload.php');\n```\n\n## Quick Start\n\n```php\nuse PhpDbManager\\DbManager;\n\ntry {\n    $db = new DbManager([\n        'host' =\u003e 'localhost',\n        'username' =\u003e 'root',\n        'password' =\u003e 'your_password',\n        'database' =\u003e 'your_database',\n        'charset' =\u003e 'utf8mb4',\n        'port' =\u003e 3306,\n        'persistent' =\u003e false,\n        'autocommit' =\u003e true,\n        'retry_attempts' =\u003e 3,\n        'retry_delay' =\u003e 100 // milliseconds\n    ]);\n\n    // Execute a prepared statement\n    $result = $db-\u003eexecute(\n        \"SELECT * FROM users WHERE id = ? AND status = ?\",\n        ['i' =\u003e 1, 's' =\u003e 'active']\n    );\n\n    // Fetch a single row\n    $user = $db-\u003efetch($result);\n\n    // Or fetch all rows\n    $users = $db-\u003efetchAll($result);\n\n} catch (Exception $e) {\n    error_log('Database error: ' . $e-\u003egetMessage());\n    // Handle error appropriately\n}\n```\n\n## Connection Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| host | string | 'localhost' | Database host |\n| username | string | - | Database username |\n| password | string | - | Database password |\n| database | string | - | Database name |\n| charset | string | 'utf8mb4' | Connection charset |\n| port | int | 3306 | Database port |\n| persistent | bool | false | Use persistent connection |\n| autocommit | bool | true | Enable autocommit |\n| timeout | int | 30 | Connection timeout in seconds |\n| retry_attempts | int | 3 | Number of connection retry attempts |\n| retry_delay | int | 100 | Delay between retries in milliseconds |\n\n## Usage Examples\n\n### Basic Queries\n\n```php\n// Select query\n$result = $db-\u003eexecute(\"SELECT * FROM users WHERE id = ?\", ['i' =\u003e 1]);\n$user = $db-\u003efetch($result);\n\n// Insert query\n$db-\u003eexecute(\n    \"INSERT INTO users (name, email) VALUES (?, ?)\",\n    ['s' =\u003e 'John Doe', 's' =\u003e 'john@example.com']\n);\n$userId = $db-\u003elastInsertId();\n\n// Update query\n$db-\u003eexecute(\n    \"UPDATE users SET status = ? WHERE id = ?\",\n    ['s' =\u003e 'active', 'i' =\u003e 1]\n);\n$affectedRows = $db-\u003eaffectedRows();\n```\n\n### Transactions\n\n```php\ntry {\n    $db-\u003ebeginTransaction();\n    \n    $db-\u003eexecute(\n        \"INSERT INTO orders (user_id, total) VALUES (?, ?)\",\n        ['i' =\u003e 1, 'd' =\u003e 99.99]\n    );\n    \n    $db-\u003eexecute(\n        \"UPDATE inventory SET stock = stock - 1 WHERE product_id = ?\",\n        ['i' =\u003e 123]\n    );\n    \n    $db-\u003ecommit();\n} catch (Exception $e) {\n    $db-\u003erollback();\n    throw $e;\n}\n```\n\n### Fetching Results\n\n```php\n// Fetch as associative array\n$result = $db-\u003eexecute(\"SELECT * FROM users\");\n$users = $db-\u003efetchAll($result, 'assoc');\n\n// Fetch as object\n$result = $db-\u003eexecute(\"SELECT * FROM users\");\n$users = $db-\u003efetchAll($result, 'object');\n\n// Fetch as indexed array\n$result = $db-\u003eexecute(\"SELECT * FROM users\");\n$users = $db-\u003efetchAll($result, 'array');\n```\n\n### Connection Info\n\n```php\n$info = $db-\u003egetConnectionInfo();\necho \"Connected to {$info['server']} as {$info['user']}\";\necho \"MySQL version: {$info['version']}\";\necho \"Charset: {$info['charset']}\";\n```\n\n## Breaking Changes from v1.x\n\n1. **Constructor Changes**:\n```php\n// Old version\n$db = new dbManager($host, $user, $pass, $dbname);\n\n// New version\n$db = new DbManager([\n    'host' =\u003e $host,\n    'username' =\u003e $user,\n    'password' =\u003e $pass,\n    'database' =\u003e $dbname\n]);\n```\n\n2. **Namespace Required**:\n```php\nuse PhpDbManager\\DbManager;\n```\n\n3. **Error Handling**:\n```php\n// Old version\nif ($db-\u003eerror !== NULL) {\n    // error exists\n}\n\n// New version\ntry {\n    $db = new DbManager($options);\n} catch (Exception $e) {\n    // Handle error\n}\n```\n\n4. **Query Execution**:\n```php\n// Old version\n$result = $db-\u003equery_prepare($sql, $params);\n$row = $db-\u003eresult($result);\n\n// New version\n$result = $db-\u003eexecute($sql, $params);\n$row = $db-\u003efetch($result);\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch\n3. Run tests and code style checks\n4. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Support\n\nFor support, please open an issue in the GitHub repository or contact the maintainers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivanraptor%2Fphp-db-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshivanraptor%2Fphp-db-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivanraptor%2Fphp-db-manager/lists"}