1

用户从选择框中选择一个值,然后通过表单将其传递到另一个页面,该页面应显示该选择的 mysql 记录。这没有显示任何结果,但是该值肯定会被传递,因为它可以被回显。

<?php
    include("top.php");

    $db = getConnection();

    $eventID = $_POST['eventID'];

    echo $eventID;
    $queryEvent = $db->query("SELECT * FROM projectEvent WHERE eventID = '$eventID'");
    $queryEvent->setFetchMode(PDO::FETCH_ASSOC);
    $record = $queryEvent->fetchALL();
?>
<form name="form1" id="form1" method="post" action="deleteOpen.php">
<p> are you sure you want to delete the following Open Day? </p>
    <table width="200" cellpadding="0" cellspacing="0">
                <tr>
                <th scope="row">eventID</th>
                <td><?php echo $record -> eventID; ?></td>
                </tr>
                <tr>    
                <th scope="row">propertyID</th>
                <td><?php echo $record -> propertyID; ?></td>
                </tr>
                <tr>
                <th scope="row">eventDate</th>
                <td><?php echo $record -> eventDate; ?></td>
                </tr>
                <tr>
                <th scope="row">eventTime</th>
                <td><?php echo $record -> eventTime; ?></td>
                </tr>
                <tr>
                <th scope="row">eventDescription</th>
                <td><?php echo $record -> eventDescription; ?></td>
                </tr>
    </table>

谁能建议为什么表中没有显示这些值?

谢谢

4

3 回答 3

5
  1. 要显示数据,您不应该使用 POST 方法,而是使用 GET 方法。
  2. 要么使用 PDO::quote 转义你的值,要么使用准备好的语句来准备/执行而不是 query()
  3. 如果您使用的是 ASSOC 模式 - 为什么要将它们作为对象属性访问?
  4. 此外,您实际上有一个嵌套数组,但将其作为单个对象访问。如果你不需要一个数组 - 不要使用 fetchAll() 然后
  5. 总是error_reporting(E_ALL);在你的脚本中看到这些愚蠢的错误。
于 2012-04-29T13:08:51.087 回答
0

您可以像这样单独连接变量:

$queryEvent = $db->query("SELECT * FROM projectEvent WHERE eventID = ".$eventID.")";
于 2012-04-29T13:02:03.580 回答
-1

通常我会做一些不同的方法。它可能不会指出问题,但我认为它会解决它。我通常不在引号内使用变量,但请在下面尝试。

$sql = sprintf("SELECT * FROM projectEvent WHERE eventID = '%s'", $eventID);
$queryEvent = $db->query($sql);
于 2012-04-29T12:57:50.913 回答