【问题标题】:How to display data from database with a html table如何使用 html 表显示数据库中的数据
【发布时间】:2019-09-05 05:37:20
【问题描述】:

我正在尝试在 HTML 表中显示我的数据库中的数据。主要问题是:表格没有出现。

<html>
<head>
<body>    
<table> 
<tr> 
<th>Id</th>  
<th>String</th>  
<th>Array</th> 
</tr> 

<?php
// Mostrar dados
echo "<table>";
{
$databaseName = 'visteon';

$pdo = new Pdo('mysql:host=127.0.0.1;dbname=' . $databaseName, 'root', '');

$result = $pdo->query('SHOW TABLES FROM ' . $databaseName)->fetchAll(PDO::FETCH_NUM);

$Tabela = [];
foreach ($result as $r) {
$Tabela[] = $r[0];
}

$data = [];
foreach ($Tabela as $Tabela) {
$data[$Tabela] = $pdo->query('SELECT * FROM ' . $Tabela)->fetchAll(PDO::FETCH_ASSOC);
}
echo "</table>";
var_dump($Tabela);
var_dump($data);

}
?>
</table>
</body>
</html>

【问题讨论】:

  • 你需要添加&lt;tr&gt;然后&lt;td&gt;&lt;table&gt;
  • 您的 SQL 查询代码容易受到 SQL 注入代码的攻击。你应该使用带有prepare的Prepared Statement@
  • @yunzen 没有使用用户输入,所以代码不对SQL注入开放。你也不能准备数据库或表名

标签: php html pdo


【解决方案1】:

您的代码中缺少完整的内部表结构,而且您没有将数据输出到 HTML 表,只是创建本地 PHP 变量并在生成表后转储它们的值。

【讨论】:

    【解决方案2】:

    在您的代码中使用try-catch,如下所示:

    try {
      $pdo = new Pdo('mysql:host=127.0.0.1;dbname=$databaseName .', 'root', 
      array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
      $result = $pdo->query('SHOW TABLES FROM ' . $databaseName)->fetchAll(PDO::FETCH_NUM);
    } catch (PDOException $e) {
      throw new Exception("Error with PDO: " . $e->getMessage());
    }
    

    并更正您的代码(检查我的第二行)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多