  | 
 LXV. MaxDB PHP Extension
     The MaxDB PHP extension allows you to access the functionality provided by
     MaxDB 7.5.0 and above. More information about the MaxDB Database server
     can be found at http://www.mysql.com/products/maxdb/.
     
     The MaxDB PHP extension is compatible to the MySQL mysqli extension. There are only
     minor differences in the behaviour of some functions due to the differences of the
     underlying database servers, MaxDB and MySQL.
     
     The main differences to mysqli are in the following functions:
     
     Documentation for MaxDB can be found at
     http://dev.mysql.com/doc/maxdb/.
     
  By using the --with-maxdb[=DIR]
  configuration option you enable PHP to access MaxDB
  databases. [DIR] points to the directory
  that contains the installed MaxDB SQLDBC package.
  
  Windows users will need
  to enable php_maxdb.dll inside of php.ini.
  这些函数的行为受 php.ini 的影响。 
   表格 1. MaxDB Configuration Options | Name | Default | Changeable | Changelog | 
|---|
 | maxdb.default_host | NULL | PHP_INI_ALL |   |  | maxdb.default_db | NULL | PHP_INI_ALL |   |  | maxdb.default_user | NULL | PHP_INI_ALL |   |  | maxdb.default_pw | NULL | PHP_INI_ALL |   |  | maxdb.long_readlen | "200" | PHP_INI_ALL |   |  
 
  有关 PHP_INI_* 常量进一步的细节与定义参见  附录 H。
 以下是该配置选项的简要解释。 
  - maxdb.default_host
    string
 
     The default server host to use when connecting to the database
     server if no other host is specified.
     - maxdb.default_db
    string
 
     The default server database to use when connecting
     if no other database is specified.
     - maxdb.default_user
    string
 
     The default user name to use when connecting to the database
     server if no other name is specified.
     - maxdb.default_pw
    string
 
     The default password to use when connecting to the database
     server if no other password is specified.
     - maxdb.long_readlen
    integer
 
     The default maximum length of bytes that is transferred to the client
     if long data is retrieved from the MaxDB database server.
     
  
 
      Represents a connection between PHP and a MaxDB database.
      autocommit - turns on or off auto-commiting database modifications change_user - changes the user of the specified database connection character_set_name - returns the default character set for the database connection close - closes a previously opened connection commit - commits the current transaction connect - opens a new connection to MaxDB database server debug - performs debugging operations dump_debug_info - dumps debug information get_client_info - returns client version get_host_info - returns type of connection used get_server_info - returns version of the MaxDB server get_server_version - returns version of the MaxDB server init - initializes maxdb object info - retrieves information about the most recently executed query kill - asks the server to kill a MaxDB thread multi_query - performs multiple queries more_results - check if more results exist from currently executed multi-query next_result - reads next result from currently executed multi-query options - set options ping - pings a server connection or reconnects if there is no connection prepare - prepares a SQL query query - performs a query real_connect - attempts to open a connection to MaxDB database server escape_string - escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection rollback - rolls back the current transaction select_db - selects the default database ssl_set - sets ssl parameters stat - gets the current system status stmt_init- initializes a statement for use with maxdb_stmt_prepare store_result - transfers a resultset from last query use_result - transfers an unbuffered resultset from last query thread-safe - returns whether thread safety is given or not 
 affected_rows - gets the number of affected rows in a previous MaxDB operation client_info - returns the MaxDB client version as a string client_version - returns the MaxDB client version as an integer errno - returns the error code for the most recent function call error - returns the error string for the most recent function call field_count - returns the number of columns for the most recent query host_info - returns a string representing the type of connection used info - retrieves information about the most recently executed query insert_id - returns the auto generated id used in the last query protocol_version - returns the version of the MaxDB protocol used sqlstate - returns a string containing the SQLSTATE error code for the last error thread_id - returns the thread ID for the current connection warning_count - returns the number of warnings generated during execution of the previous SQL statement 
 
      Represents a prepared statement.
      bind_param - binds variables to a prepared statement bind_result - binds variables to a prepared statement for result storage close - closes a prepared statement data-seek - seeks to an arbitrary row in a statement result set execute - executes a prepared statement fetch - fetches result from a prepared statement into bound variables free_result - frees stored result memory for the given statement handle result_metadata - retrieves a resultset from a prepared statement for metadata information prepare - prepares a SQL query send_long_data - sends data in chunks close_long_data - end sending long data reset - resets a prepared statement store_result - buffers complete resultset from a prepared statement 
 affected_rows - returns affected rows from last statement execution errno - returns errorcode for last statement function errno - returns errormessage for last statement function param_count - returns number of parameter for a given prepare statement sqlstate - returns a string containing the SQLSTATE error code for the last statement function 
 
      Represents the result set obtained from a query against the database.
      close - closes resultset data_seek - moves internal result pointer fetch_field - gets column information from a resultset fetch_fields - gets information for all columns from a resulset fetch_field_direct - gets column information for specified column fetch_array - fetches a result row as an associative array, a numeric array, or both. fetch_assoc - fetches a result row as an associative array fetch_object - fetches a result row as an object fetch_row - gets a result row as an enumerated array close - frees result memory field_seek - set result pointer to a specified field offset 
 以下常量由本扩展模块定义,因此只有在本扩展模块被编译到
PHP 中,或者在运行时被动态加载后才有效。 
  The following constants to use with maxdb_options() are defined.
  For further description of these constants see 
  http://dev.mysql.com/doc/maxdb/.
   表格 2. MaxDB PHP client constants | Constant | Description | 
|---|
 | MAXDB_COMPNAME | The component name used to initialise the SQLDBC runtime environment. |  | MAXDB_APPLICATION | The application to be connected to the database. |  | MAXDB_APPVERSION | The version of the application. |  | MAXDB_SQLMODE | The SQL mode. |  | MAXDB_UNICODE | TRUE, if the connection is an unicode (UCS2) client or FALSE, if not. |  | MAXDB_TIMEOUT | 
         The maximum allowed time of inactivity after which the connection to the 
         database is closed by the system.
        |  | MAXDB_ISOLATIONLEVEL | 
         Specifies whether and how shared locks and exclusive locks are implicitly 
         requested or released.
        |  | MAXDB_PACKETCOUNT | 
         The number of different request packets used for the connection.
         |  | MAXDB_STATEMENTCACHESIZE | 
         The number of prepared statements to be cached for the connection for re-use.
        |  | MAXDB_CURSORPREFIX | 
         The prefix to use for result tables that are automatically named.
        |  
  
 
  The function maxdb_fetch_array() uses a constant for
  the different types of result arrays. The following constants are
  defined:
   表格 3. MaxDB fetch constants | Constant | Description | 
|---|
 | MAXDB_ASSOC | 
       Columns are returned into the array having the fieldname as the array
       index.
       |  | MAXDB_ASSOC_UPPER | 
       Columns are returned into the array having the upper case fieldname as the array
       index.
       |  | MAXDB_ASSOC_LOWER | 
       Columns are returned into the array having the lower case fieldname as the array
       index.
       |  | MAXDB_BOTH | 
       Columns are returned into the array having both a numerical index
       and the fieldname as the array index.
       |  | MAXDB_NUM | 
       Columns are returned into the array having a numerical index to the
       fields. This index starts with 0, the first field in the result.
       |  
  
 
     All examples in the MaxDB PHP documentation use the HOTELDB demo database from MaxDB. More about this
     database can be found at http://dev.mysql.com/doc/maxdb/en/98/11b83fa6b33c17e10000000a114084/frameset.htm.
     
     To use the examples in the MaxDB PHP documentation, you have to load the tutorial data into your database.
     Then you have to set maxdb.default_db in php.ini to the database that contains the tutorial data.
     
     This simple example shows how to connect, execute a query, print
     resulting rows and disconnect from a MaxDB database.
      例子 1. MaxDB extension overview example 
<?php $link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");     /* check connection */ if (maxdb_connect_errno()) {    printf("Connect failed: %s\n", maxdb_connect_error());    exit(); }
  /* Performing SQL query */ $query = "SELECT * FROM hotel.city"; $result = maxdb_query($link, $query) or die("Query failed : " . maxdb_error());
  /* Printing results in HTML */ echo "<table>\n"; while ($line = maxdb_fetch_array($result, MAXDB_ASSOC)) {     echo "  <tr>\n";     foreach ($line as $col_value) {         echo "    <td>$col_value</td>\n";     }     echo "  </tr>\n"; } echo "</table>\n";
  /* Free resultset */ maxdb_free_result($result);
  /* Closing connection */ maxdb_close($link); ?>
 |  
  |   
    
     The following example shows how to bind variables to a SELECT INTO statement.
      例子 2. Example for use of SELECT INTO statements 
<?php $link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
  /* check connection */ if (!$link) {    printf("Connect failed: %s\n", maxdb_connect_error());    exit(); }     /* Performing SQL query */ $stmt = maxdb_prepare ($link, "SELECT percentage INTO ? FROM hotel.countrylanguage where language = ?"); if (!$stmt) {   printf ("Prepare failed: %s\n", maxdb_error($link)); }
  $name = "Mbundu";
  maxdb_stmt_bind_param($stmt, 'ds', $percentage, $name); maxdb_stmt_execute($stmt);
  printf ("%f\n", $percentage);
  maxdb_stmt_close ($stmt); ?>
 |  
  |   
    
     The following example shows how to use MaxDB database procedures.
      例子 3. Example fore using database procedures 
<?php $link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
  /* check connection */ if (!$link) {    printf("Connect failed: %s\n", maxdb_connect_error());    exit(); }
  maxdb_report (MAXDB_REPORT_OFF); maxdb_query($link,"DROP DBPROC test_proc"); maxdb_report (MAXDB_REPORT_ERROR);
  $query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";
  maxdb_query($link, $query);
  /* Performing SQL query */ $stmt = maxdb_prepare ($link, "CALL test_proc (?)"); if (!$stmt) {   printf ("Prepare failed: %s\n", maxdb_error($link)); }
  maxdb_stmt_bind_param($stmt, 's', $result); maxdb_stmt_execute($stmt);
  printf ("%s\n", $result);
  maxdb_stmt_close ($stmt); ?>
 |  
  |   
    
  |   |