PHP Classes

File: example.php

Recommend this page to a friend!
  Classes of John Nunemaker   MySQL Table Wrapper   example.php   Download  
File: example.php
Role: Example script
Content type: text/plain
Description: An example file which shows how to use the various class methods.
Class: MySQL Table Wrapper
Access rows of a MySQL table as objects
Author: By
Last change:
Date: 18 years ago
Size: 2,344 bytes
 

Contents

Class file image Download
<?php

/**
A full article on how to use this class can be found on my website:
http://addictedtonew.com/archives/82/php-and-mysql-table-wrapper/


The SQL to help with the tests below.
--
-- Table structure for table `products`
--
CREATE TABLE `products` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `title` varchar(100) NOT NULL default '',
  `description` text NOT NULL,
  `price` decimal(6,2) NOT NULL default '0.00',
  `date_created` int(11) NOT NULL default '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=4 ;

--
-- Dumping data for table `products`
--
INSERT INTO `products` VALUES (1, 'Hair Spray', 'A New Shiny Description', 9.95, 1124249200);
INSERT INTO `products` VALUES (2, 'Speakers', 'A New Shiny Description', 1.99, 1124250303);
INSERT INTO `products` VALUES (3, 'Funky Gel', 'Great for styling your hair', 7.99, 1124765799);
       
*/

require_once 'class.mysql.php';
require_once
'class.table.php';

// just put the host, username, password and database in place below
$db =& new MySQL('localhost', 'root', '', 'class_test');
if (
$db->isError()) {
    echo
$db->getErrorMsg();
}

// example use of getOne() method
echo 'Row Count: ' . $db->getOne("SELECT COUNT(*) FROM products") . '<br />';
if (
$db->isError()) {
    echo
$db->getErrorMsg();
}

//-----------------------------------------------------------------------
// create a new table wrapper
$product =& new table($db, 'products');

// insert a product
$product->title = 'Shoes';
$product->description = 'Red with tan stripes';
$product->price = 29.95;
$product->date_created = time();
$product->save();

// update a product
$product->find(1);
$product->title = 'New Hair Spray';
$product->price = 19.95;
$product->save();

// or update a product like this<br>
$product->find(1);
$product->updateAttr(array('price'=>15.95));

// or even like this
$product->updateAttr(array('price'=>12.95), 1);

// example of how to find many records
$by_title = $product->findMany('WHERE price > 6', 'ORDER BY price DESC');
if (
$by_title) {
    echo
'<ul>';
    foreach(
$by_title as $p) {
        echo
'<li>' . $p->id . ': ' . $p->title . ' ($' . number_format($p->price, 2) . ')' . '</li>';
    }
    echo
'</ul>';
}

// delete a record
$product->destroy(4);
?>