2014-11-06 67 views
0

我是新来的PDO试图找出如何得到它与PDO一起工作。我有它与MYSQL合作我可能困惑PDO如何工作。我对如何获取所有收到的记录结果有了一个空白页。我看到关于PDO的教程,但是当我这样做时,它是针对带数组的单个记录。试图获得结果与PDO表上显示声明

<?php 
require_once("../db_connect.php"); 

$stmt = $db->prepare ("SELECT * FROM requests WHERE status='Received'"); 
echo"Received Requests"; 
echo "<br><br>"; 

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
echo("<table bgcolor=F2F2F2 width=1080 border='2'>"); 

echo("<br><tr><th>Id</th><th>Update</th><th>LanID</th><th>Name</th><th>Location</th><th>Manager</th><th>request</th><th>Description</th><th>request_comments</th><th>Status</th><th>Comments</th><th>Completed User</th><th>Completed Date</th></tr>"); 

echo("<tr>"); 
echo "<td>". $row['id'] . "</td>" 
."<td><a href='../update.php?id=" . $row['id'] . "'>Update</a></td>" 
."<td>" . $row['lanId'] . "</td> " 
. "<td>". $row['name'] . "</td>" 
. "<td>". $row['department'] . "</td>" 
. "<td>" . $row['manager'] . "</td>" 
. "<td>" . $row['request'] ."</td>" 
. "<td>" . $row['request_description'] ."</td>" 
. "<td>" . $row['request_comments'] ."</td>" 
. "<td>" . $row['status'] ."</td>" 
. "<td>" . $row['comments'] ."</td>" 
. "<td>" . $row['compUser'] ."</td>" 
. "<td>" . $row['compDt'] ."</td>"; 

echo '</tr>'; 

} 
echo("</table>"); 

?> 

<html> 

<head> 
<meta http-equiv="refresh" content="5" > 
<title> 

</title> 
</head> 
<body background="../images/background.jpg"> 
</body> 

</html> 

db_connect.php

<?php 
 

 

 
$db_host = "localhost"; 
 
$db_username = "root"; 
 
$db_pass = ""; 
 
$db_name = "systems_requests"; 
 

 
$db = new PDO('mysql:host='.$db_host.';dbname='.$db_name,$db_username,$db_pass); 
 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 
 
?>

+1

得到任何错误?我也想看到你的db_connect文件。 – 2014-11-06 14:47:18

+0

安装/启用了“PDO”扩展吗?你有没有做过任何调试?你的错误日志里有什么? – 2014-11-06 14:48:41

+0

将第一个表标记放在while循环之外。在准备之后,您还缺少执行 – Mihai 2014-11-06 14:52:01

回答

0

你忘了执行你事先准备好的声明。

请使用$stmt->execute()使用$stmt->fetch()

之前也请取像这样:

$requests = $stmt->fetch (PDO::FETCH_ASSOC); 

foreach ($requests as $request) { 

    echo $request["whateverKeyYouWant"]; 

} 
+0

我能够通过添加$ stmt-> execute();提取之前 – Donny 2014-11-06 17:05:26

+0

唯一的办法就是我写表的方式是做一个正确的方法,它可以安全地从sql注入。任何人都可以提供一个正确的方法来做到这一点。 – Donny 2014-11-06 17:14:49

+0

@Donny [这里是一个链接](http://php.net/manual/en/pdostatement.bindparam.php)以正确的方式向查询添加参数,很高兴看到它现在正在工作。快乐的编码! :) – Vanitas 2014-11-06 17:18:41