<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Opens a connection to a mysql server</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="mysqli.query.html">mysqli::query</a></div> <div class="next" style="text-align: right; float: right;"><a href="mysqli.real-escape-string.html">mysqli::real_escape_string</a></div> <div class="up"><a href="class.mysqli.html">mysqli</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="mysqli.real-connect" class="refentry"> <div class="refnamediv"> <h1 class="refname">mysqli::real_connect</h1> <h1 class="refname">mysqli_real_connect</h1> <p class="verinfo">(PHP 5)</p><p class="refpurpose"><span class="refname">mysqli::real_connect</span> -- <span class="refname">mysqli_real_connect</span> — <span class="dc-title">Opens a connection to a mysql server</span></p> </div> <div class="refsect1 description" id="refsect1-mysqli.real-connect-description"> <h3 class="title">Description</h3> <p class="para">Object oriented style</p> <div class="methodsynopsis dc-description"> <span class="type">bool</span> <span class="methodname"><strong>mysqli::real_connect</strong></span> ([ <span class="methodparam"><span class="type">string</span> <code class="parameter">$host</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$username</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$passwd</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$dbname</code></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$socket</code></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$flags</code></span> ]]]]]]] )</div> <p class="para rdfs-comment">Procedural style</p> <div class="methodsynopsis dc-description"> <span class="type">bool</span> <span class="methodname"><strong>mysqli_real_connect</strong></span> ( <span class="methodparam"><span class="type"><a href="class.mysqli.html" class="type mysqli">mysqli</a></span> <code class="parameter">$link</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$host</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$username</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$passwd</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$dbname</code></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$port</code></span> [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$socket</code></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$flags</code></span> ]]]]]]] )</div> <p class="para rdfs-comment"> Establish a connection to a MySQL database engine. </p> <p class="para"> This function differs from <span class="function"><a href="function.mysqli-connect.html" class="function">mysqli_connect()</a></span>: </p> <ul class="itemizedlist"> <li class="listitem"> <p class="para"> <span class="function"><strong>mysqli_real_connect()</strong></span> needs a valid object which has to be created by function <span class="function"><a href="mysqli.init.html" class="function">mysqli_init()</a></span>. </p> </li> <li class="listitem"> <p class="para"> With the <span class="function"><a href="mysqli.options.html" class="function">mysqli_options()</a></span> function you can set various options for connection. </p> </li> <li class="listitem"> <p class="para"> There is a <em><code class="parameter">flags</code></em> parameter. </p> </li> </ul> </div> <div class="refsect1 parameters" id="refsect1-mysqli.real-connect-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <span class="term"><em><code class="parameter"> link</code></em></span><dd> <p class="para">Procedural style only: A link identifier returned by <span class="function"><a href="function.mysqli-connect.html" class="function">mysqli_connect()</a></span> or <span class="function"><a href="mysqli.init.html" class="function">mysqli_init()</a></span> </p></dd> </dt> <dt> <span class="term"><em><code class="parameter">host</code></em></span> <dd> <p class="para"> Can be either a host name or an IP address. Passing the <strong><code>NULL</code></strong> value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">username</code></em></span> <dd> <p class="para"> The MySQL user name. </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">passwd</code></em></span> <dd> <p class="para"> If provided or <strong><code>NULL</code></strong>, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not). </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">dbname</code></em></span> <dd> <p class="para"> If provided will specify the default database to be used when performing queries. </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">port</code></em></span> <dd> <p class="para"> Specifies the port number to attempt to connect to the MySQL server. </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">socket</code></em></span> <dd> <p class="para"> Specifies the socket or named pipe that should be used. </p> <blockquote class="note"><p><strong class="note">Note</strong>: <p class="para"> Specifying the <em><code class="parameter">socket</code></em> parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the <em><code class="parameter">host</code></em> parameter. </p> </p></blockquote> </dd> </dt> <dt> <span class="term"><em><code class="parameter">flags</code></em></span> <dd> <p class="para"> With the parameter <em><code class="parameter">flags</code></em> you can set different connection options: </p> <table class="doctable table"> <caption><strong>Supported flags</strong></caption> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody class="tbody"> <tr> <td><strong><code>MYSQLI_CLIENT_COMPRESS</code></strong></td> <td>Use compression protocol</td> </tr> <tr> <td><strong><code>MYSQLI_CLIENT_FOUND_ROWS</code></strong></td> <td>return number of matched rows, not the number of affected rows</td> </tr> <tr> <td><strong><code>MYSQLI_CLIENT_IGNORE_SPACE</code></strong></td> <td>Allow spaces after function names. Makes all function names reserved words.</td> </tr> <tr> <td><strong><code>MYSQLI_CLIENT_INTERACTIVE</code></strong></td> <td> Allow <em>interactive_timeout</em> seconds (instead of <em>wait_timeout</em> seconds) of inactivity before closing the connection </td> </tr> <tr> <td><strong><code>MYSQLI_CLIENT_SSL</code></strong></td> <td>Use SSL (encryption)</td> </tr> </tbody> </table> <blockquote class="note"><p><strong class="note">Note</strong>: <p class="para"> For security reasons the <strong><code>MULTI_STATEMENT</code></strong> flag is not supported in PHP. If you want to execute multiple queries use the <span class="function"><a href="mysqli.multi-query.html" class="function">mysqli_multi_query()</a></span> function. </p> </p></blockquote> </dd> </dt> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-mysqli.real-connect-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> Returns <strong><code>TRUE</code></strong> on success or <strong><code>FALSE</code></strong> on failure. </p> </div> <div class="refsect1 examples" id="refsect1-mysqli.real-connect-examples"> <h3 class="title">Examples</h3> <div class="example" id="example-1679"> <p><strong>Example #1 <span class="methodname"><strong>mysqli::real_connect()</strong></span> example</strong></p> <div class="example-contents"><p>Object oriented style</p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /><br />$mysqli </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_init</span><span style="color: #007700">();<br />if (!</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">) {<br /> die(</span><span style="color: #DD0000">'mysqli_init failed'</span><span style="color: #007700">);<br />}<br /><br />if (!</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">options</span><span style="color: #007700">(</span><span style="color: #0000BB">MYSQLI_INIT_COMMAND</span><span style="color: #007700">, </span><span style="color: #DD0000">'SET AUTOCOMMIT = 0'</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Setting MYSQLI_INIT_COMMAND failed'</span><span style="color: #007700">);<br />}<br /><br />if (!</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">options</span><span style="color: #007700">(</span><span style="color: #0000BB">MYSQLI_OPT_CONNECT_TIMEOUT</span><span style="color: #007700">, </span><span style="color: #0000BB">5</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'</span><span style="color: #007700">);<br />}<br /><br />if (!</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">real_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_user'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_password'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_db'</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Connect Error (' </span><span style="color: #007700">. </span><span style="color: #0000BB">mysqli_connect_errno</span><span style="color: #007700">() . </span><span style="color: #DD0000">') '<br /> </span><span style="color: #007700">. </span><span style="color: #0000BB">mysqli_connect_error</span><span style="color: #007700">());<br />}<br /><br />echo </span><span style="color: #DD0000">'Success... ' </span><span style="color: #007700">. </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">host_info </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-></span><span style="color: #0000BB">close</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>Object oriented style when extending mysqli class</p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">foo_mysqli </span><span style="color: #007700">extends </span><span style="color: #0000BB">mysqli </span><span style="color: #007700">{<br /> public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$host</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$pass</span><span style="color: #007700">, </span><span style="color: #0000BB">$db</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">init</span><span style="color: #007700">();<br /><br /> if (!</span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">options</span><span style="color: #007700">(</span><span style="color: #0000BB">MYSQLI_INIT_COMMAND</span><span style="color: #007700">, </span><span style="color: #DD0000">'SET AUTOCOMMIT = 0'</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Setting MYSQLI_INIT_COMMAND failed'</span><span style="color: #007700">);<br /> }<br /><br /> if (!</span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">options</span><span style="color: #007700">(</span><span style="color: #0000BB">MYSQLI_OPT_CONNECT_TIMEOUT</span><span style="color: #007700">, </span><span style="color: #0000BB">5</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'</span><span style="color: #007700">);<br /> }<br /><br /> if (!</span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">real_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$host</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$pass</span><span style="color: #007700">, </span><span style="color: #0000BB">$db</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Connect Error (' </span><span style="color: #007700">. </span><span style="color: #0000BB">mysqli_connect_errno</span><span style="color: #007700">() . </span><span style="color: #DD0000">') '<br /> </span><span style="color: #007700">. </span><span style="color: #0000BB">mysqli_connect_error</span><span style="color: #007700">());<br /> }<br /> }<br />}<br /><br /></span><span style="color: #0000BB">$db </span><span style="color: #007700">= new </span><span style="color: #0000BB">foo_mysqli</span><span style="color: #007700">(</span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_user'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_password'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_db'</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">'Success... ' </span><span style="color: #007700">. </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">host_info </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">close</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>Procedural style</p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /><br />$link </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_init</span><span style="color: #007700">();<br />if (!</span><span style="color: #0000BB">$link</span><span style="color: #007700">) {<br /> die(</span><span style="color: #DD0000">'mysqli_init failed'</span><span style="color: #007700">);<br />}<br /><br />if (!</span><span style="color: #0000BB">mysqli_options</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #0000BB">MYSQLI_INIT_COMMAND</span><span style="color: #007700">, </span><span style="color: #DD0000">'SET AUTOCOMMIT = 0'</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Setting MYSQLI_INIT_COMMAND failed'</span><span style="color: #007700">);<br />}<br /><br />if (!</span><span style="color: #0000BB">mysqli_options</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #0000BB">MYSQLI_OPT_CONNECT_TIMEOUT</span><span style="color: #007700">, </span><span style="color: #0000BB">5</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'</span><span style="color: #007700">);<br />}<br /><br />if (!</span><span style="color: #0000BB">mysqli_real_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #DD0000">'localhost'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_user'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_password'</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_db'</span><span style="color: #007700">)) {<br /> die(</span><span style="color: #DD0000">'Connect Error (' </span><span style="color: #007700">. </span><span style="color: #0000BB">mysqli_connect_errno</span><span style="color: #007700">() . </span><span style="color: #DD0000">') '<br /> </span><span style="color: #007700">. </span><span style="color: #0000BB">mysqli_connect_error</span><span style="color: #007700">());<br />}<br /><br />echo </span><span style="color: #DD0000">'Success... ' </span><span style="color: #007700">. </span><span style="color: #0000BB">mysqli_get_host_info</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">mysqli_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above examples will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> Success... MySQL host info: localhost via TCP/IP </pre></div> </div> </div> </div> <div class="refsect1 notes" id="refsect1-mysqli.real-connect-notes"> <h3 class="title">Notes</h3> <blockquote class="note"><p><strong class="note">Note</strong>: <p class="para">MySQLnd always assumes the server default charset. This charset is sent during connection hand-shake/authentication, which mysqlnd will use.</p><p class="para">Libmysqlclient uses the default charset set in the <var class="filename">my.cnf</var> or by an explicit call to <span class="function"><a href="mysqli.options.html" class="function">mysqli_options()</a></span> prior to calling <span class="function"><strong>mysqli_real_connect()</strong></span>, but after <span class="function"><a href="mysqli.init.html" class="function">mysqli_init()</a></span>.</p></p></blockquote> </div> <div class="refsect1 seealso" id="refsect1-mysqli.real-connect-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"> <span class="function"><a href="function.mysqli-connect.html" class="function" rel="rdfs-seeAlso">mysqli_connect()</a> - Alias of mysqli::__construct</span></li> <li class="member"> <span class="function"><a href="mysqli.init.html" class="function" rel="rdfs-seeAlso">mysqli_init()</a> - Initializes MySQLi and returns a resource for use with mysqli_real_connect()</span></li> <li class="member"> <span class="function"><a href="mysqli.options.html" class="function" rel="rdfs-seeAlso">mysqli_options()</a> - Set options</span></li> <li class="member"> <span class="function"><a href="mysqli.ssl-set.html" class="function" rel="rdfs-seeAlso">mysqli_ssl_set()</a> - Used for establishing secure connections using SSL</span></li> <li class="member"> <span class="function"><a href="mysqli.close.html" class="function" rel="rdfs-seeAlso">mysqli_close()</a> - Closes a previously opened database connection</span></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="mysqli.query.html">mysqli::query</a></div> <div class="next" style="text-align: right; float: right;"><a href="mysqli.real-escape-string.html">mysqli::real_escape_string</a></div> <div class="up"><a href="class.mysqli.html">mysqli</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>