MySQL - Información de la base de datos
Obtención y uso de metadatos de MySQL
Hay tres tipos de información que le gustaría obtener de MySQL.
Information about the result of queries - Esto incluye el número de registros afectados por cualquier instrucción SELECT, UPDATE o DELETE.
Information about the tables and databases - Esto incluye información relativa a la estructura de las tablas y las bases de datos.
Information about the MySQL server - Esto incluye el estado del servidor de la base de datos, número de versión, etc.
Es muy fácil obtener toda esta información en el indicador de MySQL, pero al usar las API de PERL o PHP, necesitamos llamar a varias API de forma explícita para obtener toda esta información.
Obtener el número de filas afectadas por una consulta
Veamos ahora cómo obtener esta información.
Ejemplo PERL
En los scripts DBI, el recuento de filas afectadas es devuelto por el do( ) o por el execute( ) comando, dependiendo de cómo ejecute la consulta.
# Method 1
# execute $query using do( )
my $count = $dbh->do ($query);
# report 0 rows if an error occurred
printf "%d rows were affected\n", (defined ($count) ? $count : 0);
# Method 2
# execute query using prepare( ) plus execute( )
my $sth = $dbh->prepare ($query);
my $count = $sth->execute ( );
printf "%d rows were affected\n", (defined ($count) ? $count : 0);
Ejemplo de PHP
En PHP, invoque el mysql_affected_rows( ) función para averiguar cuántas filas cambió una consulta.
$result_id = mysql_query ($query, $conn_id);
# report 0 rows if the query failed
$count = ($result_id ? mysql_affected_rows ($conn_id) : 0);
print ("$count rows were affected\n");
Listado de tablas y bases de datos
Es muy fácil enumerar todas las bases de datos y las tablas disponibles con un servidor de base de datos. Tu resultado puede sernull si no tiene los privilegios suficientes.
Aparte del método que se muestra en el siguiente bloque de código, puede utilizar SHOW TABLES o SHOW DATABASES consultas para obtener la lista de tablas o bases de datos en PHP o en PERL.
Ejemplo PERL
# Get all the tables available in current database.
my @tables = $dbh->tables ( );
foreach $table (@tables ){
print "Table Name $table\n";
}
Ejemplo de PHP
<?php
$con = mysql_connect("localhost", "userid", "password");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$db_list = mysql_list_dbs($con);
while ($db = mysql_fetch_object($db_list)) {
echo $db->Database . "<br />";
}
mysql_close($con);
?>
Obtener metadatos del servidor
Hay algunos comandos importantes en MySQL que se pueden ejecutar en el indicador de MySQL o usando cualquier script como PHP para obtener información importante sobre el servidor de la base de datos.
No Señor. | Comando y descripción |
---|---|
1 | SELECT VERSION( ) Cadena de versión del servidor |
2 | SELECT DATABASE( ) Nombre de la base de datos actual (vacío si no hay ninguno) |
3 | SELECT USER( ) Nombre de usuario actual |
4 | SHOW STATUS Indicadores de estado del servidor |
5 | SHOW VARIABLES Variables de configuración del servidor |