| [ Index ] |
PHP Cross Reference of Akelos Framework |
[Summary view] [Print] [Text view]
1 <?php 2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ 3 4 // +----------------------------------------------------------------------+ 5 // | Akelos Framework - http://www.akelos.org | 6 // +----------------------------------------------------------------------+ 7 // | Copyright (c) 2002-2006, Akelos Media, S.L. & Bermi Ferrer Martinez | 8 // | Released under the GNU Lesser General Public License, see LICENSE.txt| 9 // +----------------------------------------------------------------------+ 10 11 /** 12 * @package ActiveRecord 13 * @subpackage Base 14 * @component DbAdapter MySQL 15 * @author Bermi Ferrer <bermi a.t akelos c.om> 2004 - 2007 16 * @author Kaste 2007 17 * @copyright Copyright (c) 2002-2006, Akelos Media, S.L. http://www.akelos.org 18 * @license GNU Lesser General Public License <http://www.gnu.org/copyleft/lesser.html> 19 */ 20 21 class AkMysqlDbAdapter extends AkDbAdapter 22 { 23 24 /** 25 * @param array $database_settings 26 * @return string 27 */ 28 function _constructDsn($database_settings) 29 { 30 $dsn = 'mysqlt://'; 31 $dsn .= $database_settings['user'].':'.$database_settings['password']; 32 $dsn .= !empty($database_settings['host']) ? '@'.$database_settings['host'] : '@localhost'; 33 $dsn .= !empty($database_settings['port']) ? ':'.$database_settings['port'] : ''; 34 $dsn .= '/'.$database_settings['database_name']; 35 if (empty($database_settings['options']) && !empty($database_settings['socket'])) $database_settings['options'] = 'socket='.urlencode($database_settings['socket']); 36 $dsn .= !empty($database_settings['options']) ? '?'.$database_settings['options'] : ''; 37 return $dsn; 38 } 39 40 function type() 41 { 42 return 'mysql'; 43 } 44 45 function addLimitAndOffset(&$sql,$options) 46 { 47 if (isset($options['limit']) && $limit = $options['limit']){ 48 if (isset($options['offset']) && $offset = $options['offset']) 49 $sql .= " LIMIT $offset, $limit"; 50 else 51 $sql .= " LIMIT $limit"; 52 } 53 return $sql; 54 } 55 56 /* SCHEMA */ 57 58 function renameColumn($table_name,$column_name,$new_name) 59 { 60 $column_details = $this->selectOne("SHOW COLUMNS FROM $table_name LIKE '$column_name'"); 61 if (!$column_details) { 62 trigger_error(Ak::t("No such column '%column' in %table_name",array('%column'=>$column_name,'%table_name'=>$table_name)), E_USER_ERROR); 63 return false; 64 } 65 $column_type_definition = $column_details['Type']; 66 if ($column_details['Null']!=='YES') $column_type_definition .= ' not null'; 67 if (!empty($column_details['Default'])) $column_type_definition .= " default '".$column_details['Default']."'"; 68 return $this->execute("ALTER TABLE $table_name CHANGE COLUMN $column_name $new_name $column_type_definition"); 69 } 70 71 function availableTables() 72 { 73 return $this->selectValues('SHOW TABLES'); 74 } 75 76 /* QUOTING */ 77 78 function quote_string($value) 79 { 80 return "'".mysql_real_escape_string($value, $this->connection->_connectionID)."'"; 81 } 82 83 } 84 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Oct 27 12:43:49 2008 | Cross-referenced by PHPXref 0.6 |