使用PDO显示数据库中的数据



我盯着代码看了好几个小时,想看看我错过了什么。也许有人能给我指个方向。

首先,我有一个数据库与多个表。一个用于存储产品位置和详细信息的图像。我已经建立了一些页面,让我可以查看、编辑和添加产品。

我现在想做一些简单的事情,但它不起作用。我在数据库中创建了一个名为"Contacts"的表,并添加了"姓名、街道、城市、邮政编码、电话、电子邮件"等行。我已经用测试数据填充了这个表。

我正试图让我的页面读取数据并在屏幕上显示它。我已经写了一个完整的html页面,并搞砸了它,试图让它工作。在沮丧之后,我求助于下面一个非常简单的php脚本。我不断得到SQL错误"注意:未定义的索引:名称在C:wampwwwwoodyAdminindex.php在第38行"我知道第一个索引被称为"名称",我也试图用"$结果['0']"one_answers"$结果['1']"取代"$结果['name']"。似乎什么都不管用。有人看到我疲惫的眼睛错过了什么吗?

<body>
<?php
    require_once("../includes/db.php");
$sql = "SELECT * FROM contact";
$query = $conn->prepare( $sql );
$query->execute();
$results = $query->fetchAll( PDO::FETCH_ASSOC );        

echo htmlentities($results['name']);

?>




<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>  

echo htmlentities($results[0]['name']);

将是正确的方式,因为您使用的是返回嵌套数组的fetchAll()

或者,当您选择多行时更合适的方式

foreach ($results as $row)
{
    echo htmlentities($row['name']);
}

如果您只想选择一行,那么您必须使用fetch()方法而不是fetchAll()。你可以在我写的指南中读到各种获取模式,PDO的唯一正确指南

如果返回空数组,则没有用样例数据填充表

也有出错的可能。您必须按照My PDO Statement does 't work

中的描述报告它们。

最新更新