Directorio de artículos
¿Cómo consultar datos de una tabla en una base de datos MySQL ? Sentencia/comando/sintaxis de consulta
MySQL Consulta de datos
Las bases de datos MySQL usan sentencias SQL SELECT para consultar datos.
Puede consultar datos en la base de datos a través de la ventana del símbolo del sistema mysql> o mediante un script PHP.
gramática
La siguiente es la sintaxis general de SELECT para consultar datos en una base de datos MySQL:
SELECT column_name,column_name FROM table_name [WHERE Clause] [OFFSET M ][LIMIT N]
- En la declaración de consulta, puede usar una o más tablas, separar las tablas con comas (,) y usar la declaración WHERE para establecer las condiciones de la consulta.
- El comando SELECT puede leer uno o más registros.
- Puede usar un asterisco (*) para reemplazar otros campos, la declaración SELECT devolverá todos los datos de campo de la tabla
- Puede utilizar la instrucción WHERE para incluir cualquier condición.
- Puede especificar el desplazamiento de datos en el que la instrucción SELECT inicia la consulta con OFFSET.Por defecto el desplazamiento es 0.
- Puede usar la propiedad LIMIT para establecer la cantidad de registros devueltos.
Obtener datos a través del símbolo del sistema
En el siguiente ejemplo, usaremos el comando SQL SELECT para obtener los datos de la tabla de datos MySQL chenweiliang_tbl:
Ejemplo
El siguiente ejemplo devolverá todos los registros de la tabla de datos chenweiliang_tbl:
Lea la hoja de datos:
select * from chenweiliang_tbl;
Use el script PHP para obtener datos
Utilice la función PHP mysqli_query() y el comando SQL SELECT para recuperar los datos.
Esta función se utiliza para ejecutar comandos SQL, y luego la función PHP mysqli_fetch_array() se utiliza para acceder a todos los datos consultados o para mostrarlos.
La función mysqli_fetch_array() recupera una fila del conjunto de resultados como un array asociativo, un array numérico o ambos, y devuelve un array generado a partir de la fila recuperada. Si no hay más filas, devuelve falso.
El siguiente ejemplo lee todos los registros de la tabla de datos chenweiliang_tbl.
Ejemplo
Pruebe el siguiente ejemplo para mostrar todos los registros de la tabla de datos chenweiliang_tbl.
Use el parámetro mysqli_fetch_array MYSQL_ASSOC para obtener datos:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>En el ejemplo anterior, cada fila de registros leídos se asigna a la variable $fila y luego se imprime cada valor.
Nota: Recuerda encerrar la variable entre llaves si necesitas usarla en una cadena de texto.
En el ejemplo anterior, el segundo parámetro de la función PHP mysqli_fetch_array() es MYSQL_ASSOC . Al establecer este parámetro, se devuelve un array asociativo, y se puede usar el nombre del campo como índice del array.
PHP proporciona otra función, `mysqli_fetch_assoc()` , que recupera una fila del conjunto de resultados como un array asociativo. Devuelve un array asociativo basado en la fila recuperada del conjunto de resultados; si no hay más filas disponibles, devuelve falso.
Ejemplo
Pruebe el siguiente ejemplo, que utiliza la función mysqli_fetch_assoc() para mostrar todos los registros de la tabla chenweiliang_tbl:
Use mysqli_fetch_assoc para obtener datos:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_assoc 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_assoc($retval))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>También puede usar la constante MYSQL_NUM como segundo parámetro de la función PHP mysqli_fetch_array(), que devuelve una matriz de números.
Ejemplo
El siguiente ejemplo utiliza el parámetro MYSQL_NUM para mostrar todos los registros de la tabla chenweiliang_tbl:
Use el parámetro mysqli_fetch_array MYSQL_NUM para obtener datos:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> ".
"<td>{$row[2]} </td> ".
"<td>{$row[3]} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Los resultados de salida de los tres ejemplos anteriores son los mismos.
liberación de memoria
Es una buena práctica liberar la memoria del cursor después de haber ejecutado una instrucción SELECT.
La memoria se puede liberar a través de la función de PHP mysqli_free_result().
El siguiente ejemplo demuestra el uso de esta función.
Ejemplo
Pruebe los siguientes ejemplos:
Memoria libre con mysqli_free_result:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> ".
"<td>{$row[2]} </td> ".
"<td>{$row[3]} </td> ".
"</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>Esperamos que el artículo "Cómo consultar datos de una tabla en una base de datos MySQL: Sentencias, comandos y sintaxis de consulta", compartido en el blog de Chen Weiliang ( https://www.chenweiliang.com/ ), le sea de utilidad.
No dudes en compartir el enlace de este artículo: https://www.chenweiliang.com/cwl-461.html
