Thanks for all the help folks,

PHP-light-PDO-Class

ok well I found this...

https://github.com/poplax/PHP-light-PDO-Class

But it does not seem to recognize the port - I put the port as 8889 but keeps 
saying can't connect port 3306

Warning: PDO::__construct() [pdo.--construct]: [2002] Connection refused 
(trying to connect via tcp://127.0.0.1:3306) in 
/Users/revdave/Sites/php-fool/pdo3/PHP-light-PDO-Class-master/class.lpdo.php on 
line 33
Connection failed: SQLSTATE[HY000] [2002] Connection refused

BTW: I tried to add the port a few places but it didn't work......


How do we fix this?



------ config.php

<?php
$config = array();
$config['Database'] = array();
$config['Database']['dbtype'] = 'mysql';
$config['Database']['dbname'] = 'tester';
$config['Database']['host'] = '127.0.0.1';
$config['Database']['port'] = 8889;
$config['Database']['username'] = 'root';
$config['Database']['password'] = 'root';
$config['Database']['charset'] = 'utf8';
?>

===============  class.lpdo.php


<?php
/**
 * 
 * @Author : Poplax [Email:linjiang9...@gmail.com]; 
 * @Date : Fri Jun 03 10:17:17 2011;
 * @Filename class.lpdo.php;
 */

/**
 * class lpdo PDO
 * one table support only
 */
class lpdo extends PDO
{
        public $sql = '';
        public $tail = '';
        private $charset = 'UTF8';
        private $options;

        /**
         * 
         * @Function : __construct;
         * @Param  $ : $options Array DB config ;
         * @Return Void ;
         */
        public function __construct($options)
        {
                $this->options = $options;
                $dsn = $this->createdsn($options);
                $attrs = empty($options['charset']) ? 
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES " . $this->charset) : 
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES " . $options['charset']);
                try
                {
                        parent::__construct($dsn, $options['username'], 
$options['password'], $attrs);
                }
                catch (PDOException $e)
                {
                        echo 'Connection failed: ' . $e->getMessage();
                }
        }

        /**
         * 
         * @Function : createdsn;
         * @Param  $ : $options Array;
         * @Return String ;
         */
        private function createdsn($options)
        {
                return $options['dbtype'] . ':host=' . $options['host'] . 
';dbname=' . $options['dbname'];
        }

        /**
         * 
         * @Function : get_fields;
         * @Param  $ : $data Array;
         * @Return String ;
         */
        private function get_fields($data)
        {
                $fields = array();
                if (is_int(key($data)))
                {
                        $fields = implode(',', $data);
                }
                else if (!empty($data))
                {
                        $fields = implode(',', array_keys($data));
                }
                else
                {
                        $fields = '*';
                }
                return $fields;
        }

        /**
         * 
         * @Function : get_condition;
         * @Param  $ : $condition Array, $oper String, $logc String;
         * @Return String ;
         */
        private function get_condition($condition, $oper = '=', $logc = 'AND')
        {
                $cdts = '';
                if (empty($condition))
                {
                        return $cdts = '';
                }
                else if (is_array($condition))
                {
                        $_cdta = array();
                        foreach($condition as $k => $v)
                        {
                                if (!is_array($v))
                                {
                                        if (strtolower($oper) == 'like')
                                        {
                                                $v = '\'%' . $v . '%\'';
                                        }
                                        else if (is_string($v))
                                        {
                                                $v = '\'' . $v . '\'';
                                        }
                                        $_cdta[] = ' ' . $k . ' ' . $oper . ' ' 
. $v . ' ' ;
                                }
                                else if (is_array($v))
                                {
                                        $_cdta[] = $this->split_condition($k, 
$v);
                                }
                        }
                        $cdts .= implode($logc, $_cdta);
                }
                return $cdts;
        }

        /**
         * 
         * @Function : split_condition;
         * @Param  $ : $field String, $cdt Array;
         * @Return String ;
         */
        private function split_condition($field, $cdt)
        {
                $cdts = array();
                $oper = empty($cdt[1]) ? '=' : $cdt[1];
                $logc = empty($cdt[2]) ? 'AND' : $cdt[2];
                if (!is_array($cdt[0]))
                {
                        $cdt[0] = is_string($cdt[0]) ? "'$cdt[0]'" : $cdt[0];
                }
                else if (is_array($cdt[0]) || strtoupper(trim($cdt[1])) == 'IN')
                {
                        $cdt[0] = '(' . implode(',', $cdt[0]) . ')';
                }

                $cdta[] = " $field $oper {$cdt[0]} ";
                if (!empty($cdt[3]))
                {
                        $cdta[] = $this->get_condition($cdt[3]);
                }
                $cdts = ' ( ' . implode($logc, $cdta) . ' ) ';
                return $cdts;
        }

        /**
         * 
         * @Function : get_fields_datas;
         * @Param  $ : $data Array;
         * @Return Array ;
         */
        private function get_fields_datas($data)
        {
                $arrf = $arrd = array();
                foreach($data as $f => $d)
                {
                        $arrf[] = '`' . $f . '`';
                        $arrd[] = is_string($d) ? '\'' . $d . '\'' : $d;
                }
                $res = array(implode(',', $arrf), implode(',', $arrd));
                return $res;
        }

        /**
         * 
         * @Function : get_rows;
         * @Param  $ : $table String, $getRes Boolean, $condition Array, 
$column Array;
         * @Return Array |Object;
         */
        public function get_rows($table, $condition = array(), $getRes = false, 
$column = array())
        {
                $fields = $this->get_fields($column);
                $cdts = $this->get_condition($condition);
                $where = empty($condition) ? '' : ' where ' . $cdts;
                $this->sql = 'select ' . $fields . ' from ' . $table . $where;
                try
                {
                        $this->sql .= $this->tail;
                        $rs = parent::query($this->sql);
                }
                catch(PDOException $e)
                {
                        trigger_error("get_rows: ", E_USER_ERROR);
                        echo $e->getMessage() . "<br/>\n";
                }
                $rs = $getRes ? $rs : $rs->fetchAll(parent::FETCH_ASSOC);
                return $rs;
        }

        /**
         * 
         * @Function : get_all;
         * @Param  $ : $table String, $condition Array, $getRes Boolean;
         * @Return Array |Object;
         */
        public function get_all($table, $getRes = false, $condition = array())
        {
                return $this->get_rows($table, $condition, $getRes);
        }

        /**
         * 
         * @Function : get_one;
         * @Param  $ : $table String, $condition Array, $getRes Boolean, 
$column Array;
         * @Return Array ;
         */
        public function get_one($table, $condition = array(), $column = array())
        {
                $rs = $this->get_rows($table, $condition, true, $column);
                $rs = $rs ? $rs->fetch(parent::FETCH_ASSOC) : $rs;
                return $rs;
        }

        /**
         * 
         * @Function : insert;
         * @Param  $ : $table String, $data Array;
         * @Return Int ;
         */
        public function insert($table, $data)
        {
                list($strf, $strd) = $this->get_fields_datas($data);
                $this->sql = 'insert into `' . $table . '` (' . $strf . ') 
values (' . $strd . '); ';
                return $this->exec($this->sql, __METHOD__);
        }

        /**
         * 
         * @Function : update;
         * @Param  $ : $table String, $data Array, $condition Array;
         * @Return Int ;
         */
        public function update($table, $data, $condition)
        {
                $cdt = $this->get_condition($condition);
                $arrd = array();
                foreach($data as $f => $d)
                {
                        $arrd[] = "`$f` = '$d'";
                }
                $strd = implode(',', $arrd);
                $this->sql = 'update ' . $table . ' set ' . $strd . ' where ' . 
$cdt;
                return $this->exec($this->sql, __METHOD__);
        }

        /**
         * 
         * @Function : save;
         * @Param  $ : $table String, $data Array, $condition Array;
         * @Return Int ;
         */
        public function save($table, $data, $condition = array())
        {
                $cdt = $this->get_condition($condition);
                list($strf, $strd) = $this->get_fields_datas($data);
                $has1 = $this->get_one($table, $condition);
                if (!$has1)
                {
                        $enum = $this->insert($table, $data);
                }
                else
                {
                        $enum = $this->update($table, $data, $condition);
                }
                return $enum;
        }

        /**
         * 
         * @Function : delete;
         * @Param  $ : $table String, $condition Array;
         * @Return Int ;
         */
        public function delete($table, $condition)
        {
                $cdt = $this->get_condition($condition);
                $this->sql = 'delete from ' . $table . ' where ' . $cdt;
                return $this->exec($this->sql, __METHOD__);
        }

        /**
         * 
         * @Function : exec;
         * @Param  $ : $sql, $method;
         * @Return Int ;
         */
        public function exec($sql, $method = '')
        {
                try
                {
                        $this->sql = $sql . $this->tail;
                        $efnum = parent::exec($this->sql);
                }
                catch(PDOException $e)
                {
                        echo 'PDO ' . $method . ' Error: ' . $e->getMessage();
                }
                return intval($efnum);
        }

        /**
         * 
         * @Function : setLimit;
         * @Param  $ : $start, $length;
         * @Return ;
         */
        public function set_limit($start = 0, $length = 20)
        {
                $this->tail = ' limit ' . $start . ', ' . $length;
        }
}
?>



--
Thanks,
Dave - DealTek
deal...@gmail.com
[db-3]











--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to