Model Orm Php

PHP ORM Model class which provides table column/property mapping, CRUD, and dynamic finders/counters on a database table using PDO
Alternatives To Model Orm Php
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Mysqldump Php1,149144643 days ago18April 03, 202028gpl-3.0PHP
PHP version of mysqldump cli that comes with MySQL
2 years agoapache-2.0C
The lightest php database framework written in c language, built in php extension, for mysql
Monolog Mysql1231993 years ago6April 14, 202013mitPHP
MySQL Handler for Monolog, which allows to store log messages to a MySQL Table
Pdoone101139 days ago139September 03, 2022mitPHP
It is a simple library for PHP that simplify the use of the PDO extension.
Database81316 years ago3June 01, 20143mitPHP
PHP/MySQL database wrapper, extends PDO and PDOStatement
Gdpr Dump73
2 months ago20July 28, 20221gpl-3.0PHP
Utility that creates anonymized database dumps (MySQL only). Provides default config templates for Magento, Drupal and OroCommerce.
Voodorm48629 years ago9February 13, 20146PHP
VoodOrm is a micro-ORM which functions as both a fluent select query API and a CRUD model class. VoodOrm is built on top of PDO and is well fit for small to mid-sized projects, where the emphasis is on simplicity and rapid development rather than infinite flexibility and features. VoodOrm works easily with table relationship. And offers api that gets SQL out of your way
Personal Blog42
a year agomitPHP
Dynamic blogsite using PHP, JS & mysql where user can register, log in, post blog with images, comment, edit profile, change password, etc. There is a separate admin panel also where admin can approve user & theirs posts & comments and manipulate the whole site.
Aura.sqlschema381667 years ago5April 29, 20163bsd-2-clausePHP
Independent schema discovery tools for MySQL, PostgreSQL, SQLite, and Microsoft SQL Server.
Oauth2 Server Php Mysql33
3 years agoapache-2.0TSQL
DDL to create MySQL tables for PDO storage support of oauth2-server-php library
Alternatives To Model Orm Php
Select To Compare

Alternative Project Comparisons


Build Status

PHP Model class which provides

  • table column/property mapping,
  • CRUD
  • dynamic finders on a database table
  • dynamic counters on a database table
  • raw database queries with escaped parameters
  • helpers for finding one or more records returning rows as instances of the Model class
  • throws exception on query error
  • Requires PHP >= 5.3
  • Currenlty only tested with MySQL through the PDO drivers


With a mysql database as such on your localhost

CREATE DATABASE categorytest;
CREATE TABLE `categories` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(120) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)

Db\Model::connectDb('mysql:dbname=categorytest;host=','root','');    // db connection for all sub-classes

// minimum model definition
class Category extends db\Model {
  static protected $_tableName = 'categories'; // database table name

Save & Update records

$newCategory = new Category(array(
  'name' => 'test'

as Id is not set inserts the data as a new table row, $newCategory->id is set that of the row inserted post insert

$newCategory->name = 'changed name';

now updates existing record

new Category(array(
  'name' => 'second test'

explict ->insert() and ->update() methods are available, ->save() is a wrapper around these

All methods call ->validate() before carrying out their operation, to do your own validation overide this method in your class and throw an Exception on validation error.

Find a single record by primary key

returns an object for the matching row

$cat = Category::getById(1);

Delete record(s)

Via an instance method

$cat = Category::getById(1);

OR a Class method (primary key deletes only)


OR all records matching a where clause

Category::deleteAllWhere('name = ?',array('changed name'));

OR all records matching a where clause, specifying order and limits with more regular SQL

Category::deleteAllWhere('name = ? ORDER BY name DESC LIMIT 2',array('changed name'));

Dynamic field name finders & counters

Return an object for the first matching the name

Category::findOne_by_name('changed name');

Return an object for the first match from the names

Category::findOne_by_name(array('changed name','second test'));

Return an array of objects that match the name

Category::find_by_name('changed name');

Return an array of objects that match the names

Category::find_by_name(array('changed name','second test'));

Return the first record by ascending field 'name' as a Catgory object

Category::first_by_name('john');  // can also pass an array of values to match

Return the last record in the table when sorted by ascending field 'name' as a Catgory object

Category::last_by_name('john');   // can also pass an array of values to match

Return a count of records that match the name

Category::count_by_name('changed name');

Return a count of records that match a set of values

Category::count_by_name(array('changed name','second test'));

First, last & Count

return the first record by ascending primary key as a Catgory object


return the last record in the table when sorted by ascending primary key as a Catgory object


return the number of rows in the table


Arbitary Statements

run an arbitary statement returning a PDO statement handle to issue fetch etc... on

$st = db\Model::execute('SELECT * FROM categoies WHERE id = ? AND id = ? AND id > ?', array(1,2,6));

Find One Or All

custom SQL after the WHERE keyword returning the first match or all matches as Model instances

fetch one Category object with a custom WHERE ... clause

$cat = Category::fetchOneWhere('id = ? OR name = ?',array(1,'test'));

fetch array of Category objects with a custom WHERE ... clause

$cat = Category::fetchAllWhere('id = ? OR name = ?',array(1,'second test'));

fetch array of Category objects, as above but this time getting the second one if it exists ordered by ascending name

$cat = Category::fetchAllWhere('id = ? OR name = ? ORDER BY name ASC LIMIT 1,1',array(1,'second test'));

General SQL Helpers

Generate placeholders for an IN clause

$params = array(1,2,3,4);
$placeholders = db\Model::createInClausePlaceholders($params);    // returns a string '?,?,?,?
Category::fetchAllWhere('id IN ('.$placeholders.')',$params);     // use use in a query

Take a date string or unix datetime number and return a string that can be assigned to a TIMESTAMP or DATETIME field date strings are parsed into a unix date via PHPs incredibly flexible strtotime()

db\Model::datetimeToMysqldatetime('2012 Sept 13th 12:00');  // returns '2012-09-13 12:00:00'
db\Model::datetimeToMysqldatetime('next Monday');  // returns next monday midnight in the format 'YYYY-MM-DD HH:MM:SS'
db\Model::datetimeToMysqldatetime(gmdate());  // returns the current date time in the format 'YYYY-MM-DD HH:MM:SS'
Popular Pdo Projects
Popular Table Projects
Popular Data Processing Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.