MDB2
[ class tree: MDB2 ] [ index: MDB2 ] [ all elements ]

Source for file Common.php

Documentation is available at Common.php

  1. <?php
  2. // +----------------------------------------------------------------------+
  3. // | PHP versions 4 and 5                                                 |
  4. // +----------------------------------------------------------------------+
  5. // | Copyright (c) 1998-2006 Manuel Lemos, Tomas V.V.Cox,                 |
  6. // | Stig. S. Bakken, Lukas Smith                                         |
  7. // | All rights reserved.                                                 |
  8. // +----------------------------------------------------------------------+
  9. // | MDB2 is a merge of PEAR DB and Metabases that provides a unified DB  |
  10. // | API as well as database abstraction for PHP applications.            |
  11. // | This LICENSE is in the BSD license style.                            |
  12. // |                                                                      |
  13. // | Redistribution and use in source and binary forms, with or without   |
  14. // | modification, are permitted provided that the following conditions   |
  15. // | are met:                                                             |
  16. // |                                                                      |
  17. // | Redistributions of source code must retain the above copyright       |
  18. // | notice, this list of conditions and the following disclaimer.        |
  19. // |                                                                      |
  20. // | Redistributions in binary form must reproduce the above copyright    |
  21. // | notice, this list of conditions and the following disclaimer in the  |
  22. // | documentation and/or other materials provided with the distribution. |
  23. // |                                                                      |
  24. // | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |
  25. // | Lukas Smith nor the names of his contributors may be used to endorse |
  26. // | or promote products derived from this software without specific prior|
  27. // | written permission.                                                  |
  28. // |                                                                      |
  29. // | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |
  30. // | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |
  31. // | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |
  32. // | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |
  33. // | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |
  34. // | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
  35. // | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
  36. // |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |
  37. // | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
  38. // | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
  39. // | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |
  40. // | POSSIBILITY OF SUCH DAMAGE.                                          |
  41. // +----------------------------------------------------------------------+
  42. // | Author: Lukas Smith <smith@pooteeweet.org>                           |
  43. // +----------------------------------------------------------------------+
  44. //
  45. // $Id: Common.php 327310 2012-08-27 15:16:18Z danielc $
  46. //
  47.  
  48. /**
  49.  * @package  MDB2
  50.  * @category Database
  51.  * @author   Lukas Smith <smith@pooteeweet.org>
  52.  */
  53.  
  54. /**
  55.  * Base class for the function modules that is extended by each MDB2 driver
  56.  *
  57.  * To load this module in the MDB2 object:
  58.  * $mdb->loadModule('Function');
  59.  *
  60.  * @package  MDB2
  61.  * @category Database
  62.  * @author   Lukas Smith <smith@pooteeweet.org>
  63.  */
  64. {
  65.     // {{{ executeStoredProc()
  66.  
  67.     /**
  68.      * Execute a stored procedure and return any results
  69.      *
  70.      * @param string $name string that identifies the function to execute
  71.      * @param mixed  $params  array that contains the paramaters to pass the stored proc
  72.      * @param mixed   $types  array that contains the types of the columns in
  73.      *                         the result set
  74.      * @param mixed $result_class string which specifies which result class to use
  75.      * @param mixed $result_wrap_class string which specifies which class to wrap results in
  76.      *
  77.      * @return mixed a result handle or MDB2_OK on success, a MDB2 error on failure
  78.      * @access public
  79.      */
  80.     function executeStoredProc($name$params = null$types = null$result_class = true$result_wrap_class = false)
  81.     {
  82.         $db $this->getDBInstance();
  83.         if (MDB2::isError($db)) {
  84.             return $db;
  85.         }
  86.  
  87.         $error $db->raiseError(MDB2_ERROR_UNSUPPORTEDnullnull,
  88.             'method not implemented'__FUNCTION__);
  89.         return $error;
  90.     }
  91.  
  92.     // }}}
  93.     // {{{ functionTable()
  94.  
  95.     /**
  96.      * return string for internal table used when calling only a function
  97.      *
  98.      * @return string for internal table used when calling only a function
  99.      * @access public
  100.      */
  101.     function functionTable()
  102.     {
  103.         return '';
  104.     }
  105.  
  106.     // }}}
  107.     // {{{ now()
  108.  
  109.     /**
  110.      * Return string to call a variable with the current timestamp inside an SQL statement
  111.      * There are three special variables for current date and time:
  112.      * - CURRENT_TIMESTAMP (date and time, TIMESTAMP type)
  113.      * - CURRENT_DATE (date, DATE type)
  114.      * - CURRENT_TIME (time, TIME type)
  115.      *
  116.      * @param string $type 'timestamp' | 'time' | 'date'
  117.      *
  118.      * @return string to call a variable with the current timestamp
  119.      * @access public
  120.      */
  121.     function now($type 'timestamp')
  122.     {
  123.         switch ($type{
  124.         case 'time':
  125.             return 'CURRENT_TIME';
  126.         case 'date':
  127.             return 'CURRENT_DATE';
  128.         case 'timestamp':
  129.         default:
  130.             return 'CURRENT_TIMESTAMP';
  131.         }
  132.     }
  133.  
  134.     // }}}
  135.     // {{{ unixtimestamp()
  136.  
  137.     /**
  138.      * return string to call a function to get the unix timestamp from a iso timestamp
  139.      *
  140.      * @param string $expression 
  141.      *
  142.      * @return string to call a variable with the timestamp
  143.      * @access public
  144.      */
  145.     function unixtimestamp($expression)
  146.     {
  147.         $db $this->getDBInstance();
  148.         if (MDB2::isError($db)) {
  149.             return $db;
  150.         }
  151.  
  152.         $error $db->raiseError(MDB2_ERROR_UNSUPPORTEDnullnull,
  153.             'method not implemented'__FUNCTION__);
  154.         return $error;
  155.     }
  156.  
  157.     // }}}
  158.     // {{{ substring()
  159.  
  160.     /**
  161.      * return string to call a function to get a substring inside an SQL statement
  162.      *
  163.      * @return string to call a function to get a substring
  164.      * @access public
  165.      */
  166.     function substring($value$position = 1$length = null)
  167.     {
  168.         if (null !== $length{
  169.             return "SUBSTRING($value FROM $position FOR $length)";
  170.         }
  171.         return "SUBSTRING($value FROM $position)";
  172.     }
  173.  
  174.     // }}}
  175.     // {{{ replace()
  176.  
  177.     /**
  178.      * return string to call a function to get replace inside an SQL statement.
  179.      *
  180.      * @return string to call a function to get a replace
  181.      * @access public
  182.      */
  183.     function replace($str$from_str$to_str)
  184.     {
  185.         return "REPLACE($str$from_str , $to_str)";
  186.     }
  187.  
  188.     // }}}
  189.     // {{{ concat()
  190.  
  191.     /**
  192.      * Returns string to concatenate two or more string parameters
  193.      *
  194.      * @param string $value1 
  195.      * @param string $value2 
  196.      * @param string $values... 
  197.      *
  198.      * @return string to concatenate two strings
  199.      * @access public
  200.      */
  201.     function concat($value1$value2)
  202.     {
  203.         $args func_get_args();
  204.         return "(".implode(' || '$args).")";
  205.     }
  206.  
  207.     // }}}
  208.     // {{{ random()
  209.  
  210.     /**
  211.      * return string to call a function to get random value inside an SQL statement
  212.      *
  213.      * @return return string to generate float between 0 and 1
  214.      * @access public
  215.      */
  216.     function random()
  217.     {
  218.         return 'RAND()';
  219.     }
  220.  
  221.     // }}}
  222.     // {{{ lower()
  223.  
  224.     /**
  225.      * return string to call a function to lower the case of an expression
  226.      *
  227.      * @param string $expression 
  228.      *
  229.      * @return return string to lower case of an expression
  230.      * @access public
  231.      */
  232.     function lower($expression)
  233.     {
  234.         return "LOWER($expression)";
  235.     }
  236.  
  237.     // }}}
  238.     // {{{ upper()
  239.  
  240.     /**
  241.      * return string to call a function to upper the case of an expression
  242.      *
  243.      * @param string $expression 
  244.      *
  245.      * @return return string to upper case of an expression
  246.      * @access public
  247.      */
  248.     function upper($expression)
  249.     {
  250.         return "UPPER($expression)";
  251.     }
  252.  
  253.     // }}}
  254.     // {{{ length()
  255.  
  256.     /**
  257.      * return string to call a function to get the length of a string expression
  258.      *
  259.      * @param string $expression 
  260.      *
  261.      * @return return string to get the string expression length
  262.      * @access public
  263.      */
  264.     function length($expression)
  265.     {
  266.         return "LENGTH($expression)";
  267.     }
  268.  
  269.     // }}}
  270.     // {{{ guid()
  271.  
  272.     /**
  273.      * Returns global unique identifier
  274.      *
  275.      * @return string to get global unique identifier
  276.      * @access public
  277.      */
  278.     function guid()
  279.     {
  280.         $db $this->getDBInstance();
  281.         if (MDB2::isError($db)) {
  282.             return $db;
  283.         }
  284.  
  285.         $error $db->raiseError(MDB2_ERROR_UNSUPPORTEDnullnull,
  286.             'method not implemented'__FUNCTION__);
  287.         return $error;
  288.     }
  289.  
  290.     // }}}
  291. }
  292. ?>

Documentation generated on Mon, 29 Oct 2012 16:00:08 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.