{"id":19985224,"url":"https://github.com/taq/pdooci","last_synced_at":"2025-07-17T07:34:36.489Z","repository":{"id":15021494,"uuid":"17747207","full_name":"taq/pdooci","owner":"taq","description":"Wrapping on PHP OCI functions to simulate a PDO object, since PDO support for OCI is very confuse and slow.","archived":false,"fork":false,"pushed_at":"2022-05-20T21:23:56.000Z","size":100,"stargazers_count":67,"open_issues_count":0,"forks_count":31,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-22T23:38:32.826Z","etag":null,"topics":["oci","pdo","php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-14T13:34:59.000Z","updated_at":"2023-06-10T22:33:24.000Z","dependencies_parsed_at":"2022-08-24T13:48:45.406Z","dependency_job_id":null,"html_url":"https://github.com/taq/pdooci","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/taq/pdooci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taq%2Fpdooci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taq%2Fpdooci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taq%2Fpdooci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taq%2Fpdooci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taq","download_url":"https://codeload.github.com/taq/pdooci/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taq%2Fpdooci/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265577741,"owners_count":23791218,"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":["oci","pdo","php"],"created_at":"2024-11-13T04:23:57.433Z","updated_at":"2025-07-17T07:34:36.470Z","avatar_url":"https://github.com/taq.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PDOCI\n\n| :warning: **WARNING** This software is [abandonware](https://en.wikipedia.org/wiki/Abandonware). As the creator and maintainer, I don't even use PHP or Oracle _for years_, so, I can't support it anymore. It should work ok for PHP untill version 7, but seems that with 8.1 there are some alerts. Feel free to fork it and keep it going. |\n| --- |\n\nWrapping on PHP OCI functions to simulate a PDO object, using just pure PHP and the oci_* functions.\n\nLet's face it. Installing PHP, PDO, Oracle drivers and PDO OCI is not a pleasant\ntask. Is more pleasant to insert bamboo sticks under your fingernails than make\nall the voodoo needed to accomplish that task. And there are two big problems\nwith that:\n\n1. If you install `pdo_oci` with `pecl` you'll get a version from 2005 (http://pecl.php.net/package/PDO_OCI). \n   Even Christian Bale is now far from the things from 2005, and wow, he had a\n   cool suit and a very nice car.\n   And all came in black.\n\n2. If you follow the official docs, you'll need to compile PHP and still get an\n   *experimental* extension (http://www.php.net/manual/ref.pdo-oci.php). Come on. \n   We can't (yeah, we know how to do it!) compile PHP on every server we need\n   and just for an experimental feature?\n\nThat's why I made `PDOOCI`.\n\n## Installation\n\nFirst install the Oracle drivers (I like the instant client versions) and the\n`oci8` package (with `pecl`, this one seems to be updated often).\n\n### With Composer\n\n```\n$ composer require taq/pdooci\n```\n\n```json\n{\n    \"require\": {\n        \"taq/pdooci\": \"^1.0\"\n    }\n}\n```\n\n```php\n\u003c?php\nrequire_once 'vendor/autoload.php';\n\n$pdo = new PDOOCI\\PDO(\"mydatabase\", \"user\", \"password\");\n```\n\n### Without Composer\n\nWhy are you not using [composer](http://getcomposer.org/)? Download the `src`\nfolder from the repo and rename it to `PDOOCI`, then require the\n`PDOOCI/PDO.php` file.\n\n```php\nrequire_once \"PDOOCI/PDO.php\";\n\n$pdo = new PDOOCI\\PDO(\"mydatabase\", \"user\", \"password\");\n```\n\nYeah, the rest should work exactly the same as if you were using a PDO object. :-)\n\n## Testing\n\nThere is a test suite (using `PHPUnit` with a version bigger than 6.x) on the\n`test` directory. If you want to test (you must test your code!), create a table\ncalled `people` with two columns:\n\n1. `name` as `varchar2(50)`\n2. `email` as `varchar2(30)` \n\nAnd some environment variables:\n\n1. `PDOOCI_user` with the database user name\n2. `PDOOCI_pwd` with the database password\n3. `PDOOCI_str` with the database connection string\n\nDon't forget to run `composer install`!\n\nAnd then go to the `test` dir and run `PHPUnit` like:\n\n```\nphpunit --colors .\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaq%2Fpdooci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaq%2Fpdooci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaq%2Fpdooci/lists"}