API16

JDatabaseMySQLi/ construct

From Joomla! Documentation

< API16:JDatabaseMySQLi
Revision as of 22:01, 12 May 2013 by JoomlaWikiBot (talk | contribs) (removing red link to edit, no existant pages)

The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Description[edit]

Database object constructor

[<! removed edit link to red link >]

<! removed transcluded page call, red link never existed >

Syntax[edit]

__construct($options)
Parameter Name Default Value Description
$options List of options used to configure the connection

Defined in[edit]

libraries/joomla/database/database/mysqli.php

Importing[edit]

jimport( 'joomla.database.database.mysqli' );

Source Body[edit]

function __construct($options)
{
        $host           = array_key_exists('host', $options)    ? $options['host']              : 'localhost';
        $user           = array_key_exists('user', $options)    ? $options['user']              : '';
        $password       = array_key_exists('password',$options) ? $options['password']  : '';
        $database       = array_key_exists('database',$options) ? $options['database']  : '';
        $prefix         = array_key_exists('prefix', $options)  ? $options['prefix']    : 'jos_';
        $select         = array_key_exists('select', $options)  ? $options['select']    : true;

        // Unlike mysql_connect(), mysqli_connect() takes the port and socket
        // as separate arguments. Therefore, we have to extract them from the
        // host string.
        $port   = NULL;
        $socket = NULL;
        $targetSlot = substr(strstr($host, ":"), 1);

        if (!empty($targetSlot)) {
                // Get the port number or socket name
                if (is_numeric($targetSlot)) {
                        $port   = $targetSlot;
                } else {
                        $socket = $targetSlot;
                }

                // Extract the host name only
                $host = substr($host, 0, strlen($host) - (strlen($targetSlot) + 1));
                // This will take care of the following notation: ":3306"
                if ($host == '') {
                        $host = 'localhost';
                }
        }

        // perform a number of fatality checks, then return gracefully
        if (!function_exists('mysqli_connect')) {
                $this->_errorNum = 1;
                $this->_errorMsg = 'The MySQL adapter "mysqli" is not available.';
                return;
        }

        // connect to the server
        if (!($this->_connection = @mysqli_connect($host, $user, $password, NULL, $port, $socket))) {
                $this->_errorNum = 2;
                $this->_errorMsg = 'Could not connect to MySQL';
                return;
        }

        // finalize initialization
        parent::__construct($options);

        // select the database
        if ($select) {
                $this->select($database);
        }
}

[<! removed edit link to red link >] <! removed transcluded page call, red link never existed >

Examples[edit]

<CodeExamplesForm />