LXI. MySQL Functions

These functions allow you to access MySQL database servers. In order to have these functions available, you must compile PHP with MySQL support by using the --with-mysql option. If you use this option without specifying the path to MySQL, PHP will use the built-in MySQL client libraries. Users who run other applications that use MySQL (for example, running PHP 3 and PHP 4 as concurrent apache modules, or auth-mysql) should always specify the path to MySQL: --with-mysql=/path/to/mysql. This will force PHP to use the client libraries installed by MySQL, avoiding any conflicts.

More information about MySQL can be found at http://www.mysql.com/.

Documentation for MySQL can be found at http://www.mysql.com/documentation/.

The behaviour of the MySQL functions is affected by settings in the global configuration file.

Table 1. MySQL Configuration Options

NameDefaultChangeable
mysql.allow_persistent"On"PHP_INI_SYSTEM
mysql.max_persistent"-1"PHP_INI_SYSTEM
mysql.max_links"-1"PHP_INI_SYSTEM
mysql.default_portNULLPHP_INI_ALL
mysql.default_socketNULLPHP_INI_ALL
mysql.default_hostNULLPHP_INI_ALL
mysql.default_userNULLPHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a MySQL database.

Example 1. MySQL extension overview example

<?php
// Connecting, selecting database
$link = mysql_connect("mysql_host", "mysql_login", "mysql_password")
    or die("Could not connect");
print "Connected successfully";
mysql_select_db("my_database")
    or die("Could not select database");

// Performing SQL query
$query = "SELECT * FROM my_table";
$result = mysql_query($query)
    or die("Query failed");

// Printing results in HTML
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    print "\t<tr>\n";
    foreach ($line as $col_value) {
        print "\t\t<td>$col_value</td>\n";
    }
    print "\t</tr>\n";
}
print "</table>\n";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>

Table of Contents
mysql_affected_rows -- Get number of affected rows in previous MySQL operation
mysql_change_user --  Change logged in user of the active connection
mysql_close -- Close MySQL connection
mysql_connect -- Open a connection to a MySQL Server
mysql_create_db -- Create a MySQL database
mysql_data_seek -- Move internal result pointer
mysql_db_name -- Get result data
mysql_db_query -- Send a MySQL query
mysql_drop_db -- Drop (delete) a MySQL database
mysql_errno --  Returns the numerical value of the error message from previous MySQL operation
mysql_error --  Returns the text of the error message from previous MySQL operation
mysql_escape_string --  Escapes a string for use in a mysql_query.
mysql_fetch_array --  Fetch a result row as an associative array, a numeric array, or both.
mysql_fetch_assoc --  Fetch a result row as an associative array
mysql_fetch_field --  Get column information from a result and return as an object
mysql_fetch_lengths --  Get the length of each output in a result
mysql_fetch_object -- Fetch a result row as an object
mysql_fetch_row -- Get a result row as an enumerated array
mysql_field_flags --  Get the flags associated with the specified field in a result
mysql_field_name --  Get the name of the specified field in a result
mysql_field_len --  Returns the length of the specified field
mysql_field_seek --  Set result pointer to a specified field offset
mysql_field_table --  Get name of the table the specified field is in
mysql_field_type --  Get the type of the specified field in a result
mysql_free_result -- Free result memory
mysql_insert_id --  Get the id generated from the previous INSERT operation
mysql_list_dbs --  List databases available on a MySQL server
mysql_list_fields -- List MySQL result fields
mysql_list_tables -- List tables in a MySQL database
mysql_num_fields -- Get number of fields in result
mysql_num_rows -- Get number of rows in result
mysql_pconnect --  Open a persistent connection to a MySQL server
mysql_query -- Send a MySQL query
mysql_unbuffered_query --  Send an SQL query to MySQL, without fetching and buffering the result rows
mysql_result -- Get result data
mysql_select_db -- Select a MySQL database
mysql_tablename -- Get table name of field
mysql_get_client_info -- Get MySQL client info
mysql_get_host_info -- Get MySQL host info
mysql_get_proto_info -- Get MySQL protocol info
mysql_get_server_info -- Get MySQL server info