blob: 42678999b0ee942d89eed7f5733ea625e24bda99 [file] [log] [blame]
adminfb28bb82006-09-24 17:59:33 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Derek Allardafd99ac2008-01-19 19:59:14 +00002<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
adminfb28bb82006-09-24 17:59:33 +00003<head>
4
Derek Allard8039d4c2008-05-31 02:47:56 +00005<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Derek Jonesfd93d222008-05-06 15:18:50 +00006<title>Connecting to your Database : CodeIgniter User Guide</title>
adminfb28bb82006-09-24 17:59:33 +00007
8<style type='text/css' media='all'>@import url('../userguide.css');</style>
9<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
10
admin17a890d2006-09-27 20:42:42 +000011<script type="text/javascript" src="../nav/nav.js"></script>
admin2296fc32006-09-27 21:07:02 +000012<script type="text/javascript" src="../nav/prototype.lite.js"></script>
admin17a890d2006-09-27 20:42:42 +000013<script type="text/javascript" src="../nav/moo.fx.js"></script>
Derek Allardb3412372007-10-25 12:15:16 +000014<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
adminfb28bb82006-09-24 17:59:33 +000015
adminfb28bb82006-09-24 17:59:33 +000016<meta http-equiv='expires' content='-1' />
17<meta http-equiv= 'pragma' content='no-cache' />
18<meta name='robots' content='all' />
Derek Allard3d879d52008-01-18 19:41:32 +000019<meta name='author' content='ExpressionEngine Dev Team' />
Derek Allardd2df9bc2007-04-15 17:41:17 +000020<meta name='description' content='CodeIgniter User Guide' />
adminfb28bb82006-09-24 17:59:33 +000021
22</head>
23<body>
24
25<!-- START NAVIGATION -->
26<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
27<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
28<div id="masthead">
29<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
30<tr>
Derek Jones1ca3fc42008-06-27 00:19:33 +000031<td><h1>CodeIgniter User Guide Version 1.6.3</h1></td>
adminc0d5d522006-10-30 19:40:35 +000032<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
adminfb28bb82006-09-24 17:59:33 +000033</tr>
34</table>
35</div>
36<!-- END NAVIGATION -->
37
38
39<!-- START BREADCRUMB -->
40<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
41<tr>
42<td id="breadcrumb">
Derek Jones7a9193a2008-01-21 18:39:20 +000043<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
adminfb28bb82006-09-24 17:59:33 +000044<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
45<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
46Connecting
47</td>
Derek Allardbc030912007-06-24 18:25:29 +000048<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
adminfb28bb82006-09-24 17:59:33 +000049</tr>
50</table>
51<!-- END BREADCRUMB -->
52
53
54<br clear="all" />
55
56
57<!-- START CONTENT -->
58<div id="content">
59
60
61<h1>Connecting to your Database</h1>
62
63<p>There are two ways to connect to a database:</p>
64
65<h2>Automatically Connecting</h2>
66
admine334c472006-10-21 19:44:22 +000067<p>The "auto connect" feature will load and instantiate the database class with every page load.
Derek Allard44bd10f2008-03-25 22:27:37 +000068To enable "auto connecting", add the word <var>database</var> to the library array, as indicated in the following file:</p>
adminfb28bb82006-09-24 17:59:33 +000069
70<p><kbd>application/config/autoload.php</kbd></p>
71
72<h2>Manually Connecting</h2>
73
admine334c472006-10-21 19:44:22 +000074<p>If only some of your pages require database connectivity you can manually connect to your database by adding this
75line of code in any function where it is needed, or in your class constructor to make the database
adminfb28bb82006-09-24 17:59:33 +000076available globally in that class.</p>
77
78<code>$this->load->database();</code>
79
admine334c472006-10-21 19:44:22 +000080<p class="important">If the above function does <strong>not</strong> contain any information in the first parameter it will connect
adminfb28bb82006-09-24 17:59:33 +000081to the group specified in your database config file. For most people, this is the preferred method of use.</p>
82
83
84<p>The first parameter of this function can <strong>optionally</strong> be used to specify a particular database group
85from your config file, or you can even submit connection values for a database that is not specified in your config file.
86Examples:</p>
87
88<p>To choose a specific group from your config file you can do this:</p>
89
90<code>$this->load->database('<samp>group_name</samp>');</code>
91
92<p>Where <samp>group_name</samp> is the name of the connection group from your config file.</p>
93
94
95<p>To connect manually to a desired database you can pass an array of values:</p>
96
97<code>$config['hostname'] = "localhost";<br />
98$config['username'] = "myusername";<br />
99$config['password'] = "mypassword";<br />
100$config['database'] = "mydatabase";<br />
101$config['dbdriver'] = "mysql";<br />
102$config['dbprefix'] = "";<br />
103$config['pconnect'] = FALSE;<br />
104$config['db_debug'] = TRUE;<br />
Derek Jones25b24d22008-03-11 16:20:29 +0000105$config['cache_on'] = FALSE;<br />
106$config['cachedir'] = "";<br />
107$config['char_set'] = "utf8";<br />
108$config['dbcollat'] = "utf8_general_ci";<br />
adminfb28bb82006-09-24 17:59:33 +0000109<br />
110$this->load->database(<samp>$config</samp>);</code>
111
Derek Allardc6441282007-07-04 23:54:32 +0000112<p>For information on each of these values please see the <a href="configuration.html">configuration page</a>.</p>
adminfb28bb82006-09-24 17:59:33 +0000113
Derek Allardc6441282007-07-04 23:54:32 +0000114<p>Or you can submit your database values as a Data Source Name. DSNs must have this prototype:</p>
adminfb28bb82006-09-24 17:59:33 +0000115
116<code>$dsn = 'dbdriver://username:password@hostname/database';<br />
117<br />
Derek Allard3af44c02008-04-10 11:21:21 +0000118$this->load->database(<samp>$dsn</samp>);</code>
adminfb28bb82006-09-24 17:59:33 +0000119
Derek Jones97bc0102008-05-14 15:01:50 +0000120<p>To override default config values when connecting with a DSN string, add the config variables as a query string.</p>
adminfb28bb82006-09-24 17:59:33 +0000121
Derek Jones97bc0102008-05-14 15:01:50 +0000122<code>$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&amp;dbcollat=utf8_general_ci&amp;cache_on=true&amp;cachedir=/path/to/cache';<br />
123<br />
124$this->load->database(<samp>$dsn</samp>);</code>
adminfb28bb82006-09-24 17:59:33 +0000125
adminfb28bb82006-09-24 17:59:33 +0000126<h2>Connecting to Multiple Databases</h2>
127
128<p>If you need to connect to more than one database simultaneously you can do so as follows:</p>
129
130
131<code>$DB1 = $this->load->database('group_one', TRUE);<br />
132$DB2 = $this->load->database('group_two', TRUE);
133</code>
134
admine334c472006-10-21 19:44:22 +0000135<p>Note: Change the words "group_one" and "group_two" to the specific group names you are connecting to (or
adminfb28bb82006-09-24 17:59:33 +0000136you can pass the connection values as indicated above).</p>
137
138<p>By setting the second parameter to TRUE (boolean) the function will return the database object.</p>
139
140<div class="important">
141<p>When you connect this way, you will use your object name to issue commands rather than the syntax used throughout this guide. In other words, rather than issuing commands with:</p>
142
143<p>$this->db->query();<br />$this->db->result();<br /> etc...</p>
144
145<p>You will instead use:</p>
146
147<p>$DB1->query();<br />$DB1->result();<br /> etc...</p>
148
149</div>
150
151
152
153
154
155</div>
156<!-- END CONTENT -->
157
158
159<div id="footer">
160<p>
161Previous Topic:&nbsp;&nbsp;<a href="configuration.html">Database Configuration</a>
162&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
163<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
164<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
165Next Topic:&nbsp;&nbsp;<a href="queries.html">Queries</a>
Derek Allardc6441282007-07-04 23:54:32 +0000166</p>
Derek Jones07870432008-02-13 03:49:26 +0000167<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006-2008 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
adminfb28bb82006-09-24 17:59:33 +0000168</div>
169
170</body>
171</html>