Home arrow PHP arrow Page 3 - Completing a Blogger with PHP

Providing the blog processor with database connectivity - PHP

If you’re looking for a comprehensive series on how to create an expansible blog application with PHP 5, then this group of tutorials might be what you’ve been expecting to find. Welcome to the concluding installment of the series "Building a blogger with PHP." Made up of three friendly articles, this series provides you with all the information you need to start building a blog system with PHP in a few easy steps.

TABLE OF CONTENTS:
  1. Completing a Blogger with PHP
  2. A quick look at the BlogProcessor class
  3. Providing the blog processor with database connectivity
  4. Implementing client-side data validation on input forms
  5. Improving the blogger’s visual appearance
By: Alejandro Gervasio
Rating: starstarstarstarstar / 8
December 05, 2006

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

As I discussed in the previous section, the blog processor aggregates a simple MySQL wrapping class to have at its disposal the required capacity for handling all the database-related operations. As you’ll imagine, this functionality is easily achieved by coding a new pair of classes, which are shown below.

Take a look at their respective definitions, please:

// define 'MySQL' class

class MySQL{

private $conId;

            private $host;

            private $user;

            private $password;

            private $database;

            private $result;

            const OPTIONS=4;

            public function __construct($options=array()){

                        if(count($options)!=self::OPTIONS){

                                               throw new
Exception('Invalid number of connection parameters');

                        }

                        foreach($options as $parameter=>$value){

                                               if(!$value){

                                               throw new
Exception('Invalid parameter '.$parameter);

                                               }

                                               $this->
{$parameter}=$value;

                        }

                        $this->connectDB();

            }

            // connect to MySQL

            private function connectDB(){

                        if(!$this->conId=mysql_connect($this-
>host,$this->user,$this->password)){

                                               throw new
Exception('Error connecting to the server');

                        }

                        if(!mysql_select_db($this-
>database,$this->conId)){

                                               throw new
Exception('Error selecting database');

                        }

            }

            // run query

            public function query($query){

                        if(!$this->result=mysql_query
($query,$this->conId)){

                                               throw new
Exception('Error performing query '.$query);

                        }

                        return new Result($this,$this->result);

            }

}

// define 'Result' class

class Result {

            private $mysql;

            private $result;

            public function __construct(&$mysql,$result){

                        $this->mysql=&$mysql;

                        $this->result=$result;

            }

            // fetch row

            public function fetchRow(){

                        return mysql_fetch_assoc($this->result);

            }

            // count rows

            public function countRows(){

                        if(!$rows=mysql_num_rows($this->result)){

                                               throw new
Exception('Error counting rows');

                        }

                        return $rows;

            }

            // count affected rows

            public function countAffectedRows(){

                        if(!$rows=mysql_affected_rows($this-
>mysql->conId)){

                                               throw new
Exception('Error counting affected rows');

                        }

                        return $rows;

            }

            // get ID form last-inserted row

            public function getInsertID(){

                        if(!$id=mysql_insert_id($this->mysql-
>conId)){

                                               throw new
Exception('Error getting ID');

                        }

                        return $id;

            }

            // seek row

            public function seekRow($row=0){

                        if(!is_int($row)||$row<0){

                                               throw new
Exception('Invalid result set offset');

                        }

                        if(!mysql_data_seek($this->result,$row)){

                                               throw new
Exception('Error seeking data');

                        }

            }

}

All right, I think that the two classes listed above should be quite familiar to you, since I’ve been using them as part of different code samples in several PHP tutorials. With reference to these classes, you can see they offer a group of comprehensive methods for connecting to MySQL, running queries and handling result sets, which can be used inside the “BlogProcessor” class. Quite simple, right?

Obviously this isn’t rocket science, so let’s move on to the next section. We'll learn how to provide all the input forms included with the blog processor with a basic JavaScript validation mechanism, which adds a useful feature to the whole application.

To see how these client-side verification routines will be integrated with the blog application, please click on the link below and keep reading.



 
 
>>> More PHP Articles          >>> More By Alejandro Gervasio
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PHP ARTICLES

- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: