2013-05-13 146 views
-2

希望有人可以给我一些帮助...我使用PDO从数据库中获取一些数据,但每次脚本运行时都会返回并且没有错误,但不会显示所需的数据,我知道我正在寻找的数据也在那里..任何帮助将不胜感激,这是我目前的,谢谢。PDO选择语句

$db = new PDO('sqlite:C:\\xampp\\htdocs\\Utils\\PDF_Utils\\PDF2Word\\details.sqlite'); 

    echo "<table border=1>"; 
    echo "<tr><td>FileID</td> 
       <td>File Name</td> 
       <td>Email From</td> 
       <td>CC</td> <td>Subject</td> 
       <td>File Size</td></tr>"; 


       $contents = $db->prepare("SELECT * FROM details WHERE fileName = 
         '$yourFileName'"); 
       $contents->execute(); 

        foreach($contents as $row) { 
         echo "<tr><td>" . $row['FileID'] . "</td>"; 
         echo "<td>" . $row['fileName'] . "</td>"; 
         echo "<td>" . $row['emailFrom'] . "</td>"; 
         echo "<td>" . $row['CC'] . "</td>"; 
         echo "<td>" . $row['subject'] . "</td>"; 
         echo "<td>" . $row['fileSize'] . "</td></tr>"; 
        } 
        echo "</table>"; 

回答

-1

准备语句时使用的占位符,然后执行查询传递参数,如:

while($row = $contents->fetch(PDO::FETCH_ASSOC)){ 
    //your code here; 
} 
+0

应该是'array($ yourFileName)' – hjpotter92 2013-05-13 10:27:27

+0

@ hjpotter92错过了。固定。 – Ander2 2013-05-13 10:29:17

+0

试过了,它仍然只是显示一张空白表... – 2013-05-13 10:34:11

-1

在方括号内:

$contents = $db->prepare("SELECT * FROM details WHERE fileName = ?"); 
$contents->execute(array($yourFileName)); 

然后使用FETCH_ASSOC获取结果$ yourFileName as {$ yourFileName}

+1

没有区别 – 2013-05-13 10:29:23

0
$stmt = $db->prepare("SELECT * FROM details WHERE fileName = ?"); 
$stmt->execute(array($yourFileName)); 
$contents = $stmt->fetchAll(); 

其余的都是一样的

+0

它做同样的事情,只是显示一张空白表 – 2013-05-13 10:30:54

+0

1.它不是一回事。 2.要有非空白的屏幕,你必须[正确设置你的PDO和PHP](http://stackoverflow.com/questions/15990857/reference-frequently-asked-questions-about-pdo#15990858) – 2013-05-13 10:34:24

+0

现在修复它,感谢无论如何帮助,但做了一个不同的方式。 – 2013-05-13 11:02:29