PDO,空白页

时间:2014-12-23 13:17:55

标签: php pdo

我在放置代码的一侧得到一个空白页面,以回显数据库中的数据。

我的代码是:

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

2 个答案:

答案 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中启用错误消息。