<?php
// Create a MySQLi connection
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
function outputMySQLToHTMLTable(mysqli $mysqli, string $table)
{
// Check table existence
$tableNames = array_column($mysqli->query('SHOW TABLES')->fetch_all(), 0);
if (!in_array($table, $tableNames, true)) {
throw new UnexpectedValueException('Unknown table name provided!');
}
// Fetch data and metadata
$res = $mysqli->query('SELECT * FROM ' . $table);
$data = $res->fetch_all(MYSQLI_ASSOC);
echo '<table>';
// Display table header
echo '<thead>';
echo '<tr>';
foreach ($res->fetch_fields() as $column) {
echo '<th>' . htmlspecialchars($column->name) . '</th>';
}
echo '</tr>';
echo '</thead>';
// Display table rows
if ($data) {
foreach ($data as $row) {
echo '<tr>';
foreach ($row as $cell) {
echo '<td>' . htmlspecialchars($cell) . '</td>';
}
echo '</tr>';
}
} else {
echo '<tr><td colspan="' . $res->field_count . '">No records in the table!</td></tr>';
}
echo '</table>';
}
// Output the table
outputMySQLToHTMLTable($mysqli, 'user');
Copier après la connexion
L'approche PDO est similaire, mais vous devrez utiliser fetchAll(PDO::FETCH_COLUMN) pour la validation du nom de table et getColumnMeta() pour la colonne métadonnées.
Cette approche garantit que votre code peut générer dynamiquement des tableaux HTML basés sur la dernière structure de table de MySQL, éliminant ainsi le besoin de mises à jour manuelles des en-têtes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn