blob: 849c806894700612fbd98211e0ce89062e2c0a27 [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">
2<html>
3<head>
4
Derek Allard404e35d2007-08-07 01:00:45 +00005<title>CodeIgniter User Guide : Connecting to your Database</title>
adminfb28bb82006-09-24 17:59:33 +00006
7<style type='text/css' media='all'>@import url('../userguide.css');</style>
8<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
9
admin17a890d2006-09-27 20:42:42 +000010<script type="text/javascript" src="../nav/nav.js"></script>
admin2296fc32006-09-27 21:07:02 +000011<script type="text/javascript" src="../nav/prototype.lite.js"></script>
admin17a890d2006-09-27 20:42:42 +000012<script type="text/javascript" src="../nav/moo.fx.js"></script>
adminfb28bb82006-09-24 17:59:33 +000013<script type="text/javascript">
14window.onload = function() {
admine334c472006-10-21 19:44:22 +000015 myHeight = new fx.Height('nav', {duration: 400});
adminfb28bb82006-09-24 17:59:33 +000016 myHeight.hide();
17}
18</script>
19
20<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
21<meta http-equiv='expires' content='-1' />
22<meta http-equiv= 'pragma' content='no-cache' />
23<meta name='robots' content='all' />
24<meta name='author' content='Rick Ellis' />
Derek Allardd2df9bc2007-04-15 17:41:17 +000025<meta name='description' content='CodeIgniter User Guide' />
adminfb28bb82006-09-24 17:59:33 +000026
27</head>
28<body>
29
30<!-- START NAVIGATION -->
31<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
32<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>
33<div id="masthead">
34<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
35<tr>
Derek Allard60ca9b72007-07-12 19:53:27 +000036<td><h1>CodeIgniter User Guide Version 1.5.4</h1></td>
adminc0d5d522006-10-30 19:40:35 +000037<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
adminfb28bb82006-09-24 17:59:33 +000038</tr>
39</table>
40</div>
41<!-- END NAVIGATION -->
42
43
44<!-- START BREADCRUMB -->
45<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
46<tr>
47<td id="breadcrumb">
Derek Allardd2df9bc2007-04-15 17:41:17 +000048<a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
adminfb28bb82006-09-24 17:59:33 +000049<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
50<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
51Connecting
52</td>
Derek Allardbc030912007-06-24 18:25:29 +000053<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 +000054</tr>
55</table>
56<!-- END BREADCRUMB -->
57
58
59<br clear="all" />
60
61
62<!-- START CONTENT -->
63<div id="content">
64
65
66<h1>Connecting to your Database</h1>
67
68<p>There are two ways to connect to a database:</p>
69
70<h2>Automatically Connecting</h2>
71
admine334c472006-10-21 19:44:22 +000072<p>The "auto connect" feature will load and instantiate the database class with every page load.
adminfb28bb82006-09-24 17:59:33 +000073To enable "auto connecting", add the word <var>database</var> to the core array, as indicated in the following file:</p>
74
75<p><kbd>application/config/autoload.php</kbd></p>
76
77<h2>Manually Connecting</h2>
78
admine334c472006-10-21 19:44:22 +000079<p>If only some of your pages require database connectivity you can manually connect to your database by adding this
80line of code in any function where it is needed, or in your class constructor to make the database
adminfb28bb82006-09-24 17:59:33 +000081available globally in that class.</p>
82
83<code>$this->load->database();</code>
84
admine334c472006-10-21 19:44:22 +000085<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 +000086to the group specified in your database config file. For most people, this is the preferred method of use.</p>
87
88
89<p>The first parameter of this function can <strong>optionally</strong> be used to specify a particular database group
90from your config file, or you can even submit connection values for a database that is not specified in your config file.
91Examples:</p>
92
93<p>To choose a specific group from your config file you can do this:</p>
94
95<code>$this->load->database('<samp>group_name</samp>');</code>
96
97<p>Where <samp>group_name</samp> is the name of the connection group from your config file.</p>
98
99
100<p>To connect manually to a desired database you can pass an array of values:</p>
101
102<code>$config['hostname'] = "localhost";<br />
103$config['username'] = "myusername";<br />
104$config['password'] = "mypassword";<br />
105$config['database'] = "mydatabase";<br />
106$config['dbdriver'] = "mysql";<br />
107$config['dbprefix'] = "";<br />
108$config['pconnect'] = FALSE;<br />
109$config['db_debug'] = TRUE;<br />
110$config['active_r'] = TRUE;<br />
111<br />
112$this->load->database(<samp>$config</samp>);</code>
113
Derek Allardc6441282007-07-04 23:54:32 +0000114<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 +0000115
Derek Allardc6441282007-07-04 23:54:32 +0000116<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 +0000117
118<code>$dsn = 'dbdriver://username:password@hostname/database';<br />
119<br />
120$this->load->database('<samp>$dsn</samp>');</code>
121
122<p>Note that if you use a DSN you will not be able to specify some of the default values like you can if you use a connection array.</p>
123
124
adminfb28bb82006-09-24 17:59:33 +0000125<h2>Connecting to Multiple Databases</h2>
126
127<p>If you need to connect to more than one database simultaneously you can do so as follows:</p>
128
129
130<code>$DB1 = $this->load->database('group_one', TRUE);<br />
131$DB2 = $this->load->database('group_two', TRUE);
132</code>
133
admine334c472006-10-21 19:44:22 +0000134<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 +0000135you can pass the connection values as indicated above).</p>
136
137<p>By setting the second parameter to TRUE (boolean) the function will return the database object.</p>
138
139<div class="important">
140<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>
141
142<p>$this->db->query();<br />$this->db->result();<br /> etc...</p>
143
144<p>You will instead use:</p>
145
146<p>$DB1->query();<br />$DB1->result();<br /> etc...</p>
147
148</div>
149
150
151
152
153
154</div>
155<!-- END CONTENT -->
156
157
158<div id="footer">
159<p>
160Previous Topic:&nbsp;&nbsp;<a href="configuration.html">Database Configuration</a>
161&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
162<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
163<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
164Next Topic:&nbsp;&nbsp;<a href="queries.html">Queries</a>
Derek Allardc6441282007-07-04 23:54:32 +0000165</p>
Derek Allardd2df9bc2007-04-15 17:41:17 +0000166<p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
adminfb28bb82006-09-24 17:59:33 +0000167</div>
168
169</body>
170</html>