📄 database_interface.lib.php
字号:
if ( is_string( $result ) ) { $result = PMA_DBI_try_query( $result, $link, $options | PMA_DBI_QUERY_STORE ); } // return false if result is empty or false // or requested row is larger than rows in result if ( PMA_DBI_num_rows( $result ) < ( $row_number + 1 ) ) { return $value; } // if $field is an integer use non associative mysql fetch function if ( is_int( $field ) ) { $fetch_function = 'PMA_DBI_fetch_row'; } else { $fetch_function = 'PMA_DBI_fetch_assoc'; } // get requested row for ( $i = 0; $i <= $row_number; $i++ ) { $row = $fetch_function( $result ); } PMA_DBI_free_result( $result ); // return requested field if ( isset( $row[$field] ) ) { $value = $row[$field]; } unset( $row ); return $value;}/** * returns only the first row from the result * * <code> * $sql = 'SELECT * FROM `user` WHERE `id` = 123'; * $user = PMA_DBI_fetch_single_row( $sql ); * // produces * // $user = array( 'id' => 123, 'name' => 'John Doe' ) * </code> * * @uses is_string() * @uses PMA_DBI_try_query() * @uses PMA_DBI_num_rows() * @uses PMA_DBI_fetch_row() * @uses PMA_DBI_fetch_assoc() * @uses PMA_DBI_fetch_array() * @uses PMA_DBI_free_result() * @param string|mysql_result $result query or mysql result * @param string $type NUM|ASSOC|BOTH * returned array should either numeric * associativ or booth * @param resource $link mysql link * @param mixed $options * @return array|boolean first row from result * or false if result is empty */function PMA_DBI_fetch_single_row( $result, $type = 'ASSOC', $link = null, $options = 0 ) { if ( is_string( $result ) ) { $result = PMA_DBI_try_query( $result, $link, $options | PMA_DBI_QUERY_STORE ); } // return null if result is empty or false if ( ! PMA_DBI_num_rows( $result ) ) { return false; } switch ( $type ) { case 'NUM' : $fetch_function = 'PMA_DBI_fetch_row'; break; case 'ASSOC' : $fetch_function = 'PMA_DBI_fetch_assoc'; break; case 'BOTH' : default : $fetch_function = 'PMA_DBI_fetch_array'; break; } $row = $fetch_function( $result ); PMA_DBI_free_result( $result ); return $row;}/** * returns all rows in the resultset in one array * * <code> * $sql = 'SELECT * FROM `user`'; * $users = PMA_DBI_fetch_result( $sql ); * // produces * // $users[] = array( 'id' => 123, 'name' => 'John Doe' ) * * $sql = 'SELECT `id`, `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql, 'id' ); * // produces * // $users['123'] = array( 'id' => 123, 'name' => 'John Doe' ) * * $sql = 'SELECT `id`, `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql, 0 ); * // produces * // $users['123'] = array( 0 => 123, 1 => 'John Doe' ) * * $sql = 'SELECT `id`, `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql, 'id', 'name' ); * // or * $users = PMA_DBI_fetch_result( $sql, 0, 1 ); * // produces * // $users['123'] = 'John Doe' * * $sql = 'SELECT `name` FROM `user`'; * $users = PMA_DBI_fetch_result( $sql ); * // produces * // $users[] = 'John Doe' * </code> * * @uses is_string() * @uses is_int() * @uses PMA_DBI_try_query() * @uses PMA_DBI_num_rows() * @uses PMA_DBI_num_fields() * @uses PMA_DBI_fetch_row() * @uses PMA_DBI_fetch_assoc() * @uses PMA_DBI_free_result() * @param string|mysql_result $result query or mysql result * @param string|integer $key field-name or offset * used as key for array * @param string|integer $value value-name or offset * used as value for array * @param resource $link mysql link * @param mixed $options * @return array resultrows or values indexed by $key */function PMA_DBI_fetch_result( $result, $key = null, $value = null, $link = null, $options = 0 ){ $resultrows = array(); if ( is_string($result) ) { $result = PMA_DBI_try_query($result, $link, $options); } // return empty array if result is empty or false if ( ! $result ) { return $resultrows; } $fetch_function = 'PMA_DBI_fetch_assoc'; // no nested array if only one field is in result if ( null === $key && 1 === PMA_DBI_num_fields($result) ) { $value = 0; $fetch_function = 'PMA_DBI_fetch_row'; } // if $key is an integer use non associative mysql fetch function if ( is_int($key) ) { $fetch_function = 'PMA_DBI_fetch_row'; } if ( null === $key && null === $value ) { while ( $row = $fetch_function($result) ) { $resultrows[] = $row; } } elseif ( null === $key ) { while ( $row = $fetch_function($result) ) { $resultrows[] = $row[$value]; } } elseif ( null === $value ) { if ( is_array($key) ) { while ( $row = $fetch_function($result) ) { $result_target =& $resultrows; foreach ( $key as $key_index ) { if ( ! isset( $result_target[$row[$key_index]] ) ) { $result_target[$row[$key_index]] = array(); } $result_target =& $result_target[$row[$key_index]]; } $result_target = $row; } } else { while ( $row = $fetch_function($result) ) { $resultrows[$row[$key]] = $row; } } } else { if ( is_array($key) ) { while ( $row = $fetch_function($result) ) { $result_target =& $resultrows; foreach ( $key as $key_index ) { if ( ! isset( $result_target[$row[$key_index]] ) ) { $result_target[$row[$key_index]] = array(); } $result_target =& $result_target[$row[$key_index]]; } $result_target = $row[$value]; } } else { while ( $row = $fetch_function($result) ) { $resultrows[$row[$key]] = $row[$value]; } } } PMA_DBI_free_result($result); return $resultrows;}/** * return default table engine for given database * * @return string default table engine */function PMA_DBI_get_default_engine(){ if ( PMA_MYSQL_INT_VERSION > 50002 ) { return PMA_DBI_fetch_value( 'SHOW VARIABLES LIKE \'storage_engine\';', 0, 1 ); } else { return PMA_DBI_fetch_value( 'SHOW VARIABLES LIKE \'table_type\';', 0, 1 ); }}/** * Get supported SQL compatibility modes * * @return array supported SQL compatibility modes */function PMA_DBI_getCompatibilities(){ if (PMA_MYSQL_INT_VERSION < 40100) { return array(); } $compats = array('NONE'); if (PMA_MYSQL_INT_VERSION >= 40101) { $compats[] = 'ANSI'; $compats[] = 'DB2'; $compats[] = 'MAXDB'; $compats[] = 'MYSQL323'; $compats[] = 'MYSQL40'; $compats[] = 'MSSQL'; $compats[] = 'ORACLE'; $compats[] = 'POSTGRESQL'; if (PMA_MYSQL_INT_VERSION >= 50002) { $compats[] = 'TRADITIONAL'; } } return $compats;}/** * returns true (int > 0) if current user is superuser * otherwise 0 * * @return integer $is_superuser */function PMA_isSuperuser() { return PMA_DBI_try_query( 'SELECT COUNT(*) FROM mysql.user', $GLOBALS['userlink'], PMA_DBI_QUERY_STORE );}/** * returns an array of PROCEDURE or FUNCTION names for a db * * @uses PMA_DBI_free_result() * @param string $db db name * @param string $which PROCEDURE | FUNCTION * @param resource $link mysql link * * @return array the procedure names or function names */function PMA_DBI_get_procedures_or_functions($db, $which, $link = null) { $shows = PMA_DBI_fetch_result('SHOW ' . $which . ' STATUS;', null, null, $link); $result = array(); foreach ($shows as $one_show) { if ($one_show['Db'] == $db && $one_show['Type'] == $which) { $result[] = $one_show['Name']; } } return($result);}/** * returns the definition of a specific PROCEDURE or FUNCTION * * @uses PMA_DBI_fetch_value() * @param string $db db name * @param string $which PROCEDURE | FUNCTION * @param string $proc_or_function_name the procedure name or function name * @param resource $link mysql link * * @return string the procedure's or function's definition */function PMA_DBI_get_procedure_or_function_def($db, $which, $proc_or_function_name, $link = null) { $returned_field = array('PROCEDURE' => 'Create Procedure', 'FUNCTION' => 'Create Function'); $query = 'SHOW CREATE ' . $which . ' ' . PMA_backquote($db) . '.' . PMA_backquote($proc_or_function_name); return(PMA_DBI_fetch_value( $query, 0, $returned_field[$which]));}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -