我在放置代码的一侧得到一个空白页面,以回显数据库中的数据。
我的代码是:
<?php include 'includes/config2.php' ?>
<?php $db = new PDO('mysql:host=localhost;dbname=teun_blog', $dbuser,$dbpass);
$statement = $db->prepare("SELECT products FROM members WHERE memberID = 1");
$statement->execute(array(':name' => "Teun"));
$row = $statement->fetch();
?>
<?php while ($row = $statement->fetch()): ?>
<tr>
<td><span class="label label-info">Je hebt <a href="mijnproducten"><?php echo htmlspecialchars($row['products'])?></a> Webhosting pakket(ten).</span></td>
</tr>
<?php endwhile; ?>
答案 0 :(得分:2)
您绑定了execute()
语句中的参数,但sql查询中没有参数。
为了避免/轻松发现这些问题,您应该添加错误处理。在PDO中执行此操作的一种简单方法是让它抛出异常。
要显示错误并让PDO抛出异常,您可以将其添加到脚本的顶部:
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
include 'includes/config2.php';
$db = new PDO('mysql:host=localhost;dbname=teun_blog', $dbuser,
$dbpass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
答案 1 :(得分:1)
您尝试在预准备语句中绑定一个之前未定义的变量:
$statement = $db->prepare("SELECT products FROM members WHERE memberID = 1");
$statement->execute(array(':name' => "Teun"));
修复此问题并删除了至少一个错误:
$statement = $db->prepare("SELECT products FROM members WHERE memberID = 1");
$statement->execute();
您真正的问题是您没有收到任何错误。请看这个问题:How to get useful error messages in PHP?了解如何在PHP中启用错误消息。