我盯着代码看了好几个小时,想看看我错过了什么。也许有人能给我指个方向。
首先,我有一个数据库与多个表。一个用于存储产品位置和详细信息的图像。我已经建立了一些页面,让我可以查看、编辑和添加产品。
我现在想做一些简单的事情,但它不起作用。我在数据库中创建了一个名为"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