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

时间:2015-10-03 09:16:54

标签: php mysql select pdo

我一直盯着代码看了几个小时试图看到我失踪的东西。也许有人可以指出我正确的方向。

首先,我有一个包含多个表的数据库。一个用于存储产品位置和详细信息的图像。我构建了可以查看,编辑和添加产品的页面。这一切都很有效。

我现在正在尝试做一些简单的事情而且它不起作用。我创建了一张桌子" Contacts"在数据库中添加了行"名称,街道,城市,邮编,电话,电子邮件"。我用测试数据填充了这个表。

我试图让我的页面读取数据并将其显示在屏幕上。我写了一个完整的html页面,并试图让它工作。在感到沮丧之后,我使用了一个非常简单的PHP脚本。我一直收到SQL错误"注意:未定义的索引:第38行和第34行的C:\ wamp \ www \ woody \ Admin \ index.php中的名称;我知道第一个索引名为" name"我还试图取代" $ results [' name']"使用" $结果[' 0']"和" $结果[' 1']"。似乎没什么用。有人看到我疲惫的眼睛失踪了吗?

<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>  

1 个答案:

答案 0 :(得分:1)

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

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

或者,选择多行时更合适

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

如果您只想选择一行,则必须使用fetch()方法而不是fetchAll()。您可以在我写的指南The only proper guide on PDO

中阅读有关各种获取模式的内容

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

还有可能出现错误。您必须按照My PDO Statement doesn't work

中的说明报告这些内容