[ Index ] |
|
Code source de Symfony 1.0.0 |
1 <?php 2 /* 3 * $Id: PgSQLIdGenerator.php,v 1.5 2004/03/19 14:19:50 hlellelid Exp $ 4 * 5 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 6 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 7 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 8 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 9 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 11 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 12 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 13 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 14 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 15 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 16 * 17 * This software consists of voluntary contributions made by many individuals 18 * and is licensed under the LGPL. For more information please see 19 * <http://creole.phpdb.org>. 20 */ 21 22 require_once 'creole/IdGenerator.php'; 23 24 /** 25 * PostgreSQL IdGenerator implemenation. 26 * 27 * @author Hans Lellelid <hans@xmpl.org> 28 * @version $Revision: 1.5 $ 29 * @package creole.drivers.pgsql 30 */ 31 class PgSQLIdGenerator implements IdGenerator { 32 33 /** Connection object that instantiated this class */ 34 private $conn; 35 36 /** 37 * Creates a new IdGenerator class, saves passed connection for use 38 * later by getId() method. 39 * @param Connection $conn 40 */ 41 public function __construct(Connection $conn) 42 { 43 $this->conn = $conn; 44 } 45 46 /** 47 * @see IdGenerator::isBeforeInsert() 48 */ 49 public function isBeforeInsert() 50 { 51 return true; 52 } 53 54 /** 55 * @see IdGenerator::isAfterInsert() 56 */ 57 public function isAfterInsert() 58 { 59 return false; 60 } 61 62 /** 63 * @see IdGenerator::getIdMethod() 64 */ 65 public function getIdMethod() 66 { 67 return self::SEQUENCE; 68 } 69 70 /** 71 * @see IdGenerator::getId() 72 */ 73 public function getId($name = null) 74 { 75 if ($name === null) { 76 throw new SQLException("You must specify the sequence name when calling getId() method."); 77 } 78 $rs = $this->conn->executeQuery("SELECT nextval('" . pg_escape_string ( $name ) . "')", ResultSet::FETCHMODE_NUM); 79 $rs->next(); 80 return $rs->getInt(1); 81 } 82 83 } 84
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Fri Mar 16 22:42:14 2007 | par Balluche grâce à PHPXref 0.7 |