Php 活动结果集中没有更多行。由于此结果集不可滚动,因此无法检索更多数据
关于我上面的问题,我创建了一个系统,要求用户选择“从”到“到”之间的日期。我使用了AJAX方法。当显示结果时,它将显示与我的主题相同的错误。代码如下:Php 活动结果集中没有更多行。由于此结果集不可滚动,因此无法检索更多数据,php,sql-server,Php,Sql Server,关于我上面的问题,我创建了一个系统,要求用户选择“从”到“到”之间的日期。我使用了AJAX方法。当显示结果时,它将显示与我的主题相同的错误。代码如下: <?php if(isset($_POST["From"], $_POST["to"])) { $result = ''; $query = $conn->query("SELECT * FROM booking LEFT JOIN room ON booking.Room_ID = room.Room_ID WHE
<?php
if(isset($_POST["From"], $_POST["to"]))
{
$result = '';
$query = $conn->query("SELECT * FROM booking LEFT JOIN room ON booking.Room_ID = room.Room_ID WHERE Book_Status = 'Approve'
AND (room.Room_ID = '4' OR room.Room_ID = '5' OR room.Room_ID = '6' OR room.Room_ID = '7'
OR room.Room_ID = '8' OR room.Room_ID = '9' OR room.Room_ID = '10')
AND Book_Date BETWEEN '".$_POST["From"]."' AND '".$_POST["to"]."' ORDER BY StartTime DESC");
$query -> execute();
$results = $query -> fetchAll(PDO::FETCH_OBJ);
if($query->fetchColumn() > 0)
{
while($row = $query->fetch(PDO::FETCH_ASSOC))
{
$date = $row['StartTime'];
$date2 = strtotime($date);
$Start = date('h:i A', $date2);
$date3 = $row['EndTime'];
$date4 = strtotime($date3);
$End = date('h:i A', $date4);
$book = $row['Book_Date'];
$book2 = strtotime($book);
$DateBooked = date('d M Y', $book2);
$result .='
<tr>
<td>'.$DateBooked.'</td>
<td>'.$Start.'</td>
<td>'.$End.'</td>
<td>'.$row["Room_Desc"].'</td>
<td>'.$row["Meeting_Description"].'</td>
<td>'.$row["Admin_email"].'</td>
<td>'.$row["Requested_by"].'</td>
<td>'.$row["Remark"].'</td>
</tr>';
}
}
else
{
$result .='
<tr>
<td colspan="8">No Booking Room Found</td>
</tr>';
}
$result .='</table>';
echo $result;
}
?>
<代码> 您需要考虑以下内容:
- 出现错误的原因是您正在使用相同的语句调用
和fetchAll()
。您应该从这两种可能的方法中选择一种,并正确地获取数据。返回包含结果集中所有剩余行的数组,同时从结果集中提取一行while($row=$query->fetch(PDO::fetch_ASSOC))
- 删除对
的调用。相反,使用参数化查询来防止SQL注入$conn->query()
<?php
if (isset($_POST["From"], $_POST["to"])) {
$result = '';
$query = $conn->prepare("
SELECT *
FROM booking
LEFT JOIN room ON booking.Room_ID = room.Room_ID
WHERE
Book_Status = 'Approve' AND
(room.Room_ID = '4' OR room.Room_ID = '5' OR room.Room_ID = '6' OR room.Room_ID = '7' OR room.Room_ID = '8' OR room.Room_ID = '9' OR room.Room_ID = '10') AND
Book_Date BETWEEN :from AND :to
ORDER BY StartTime DESC
");
$query->bindParam(':from', $_POST["From"]);
$query->bindParam(':to', $_POST["to"]);
$query->execute();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$date = $row['StartTime'];
$date2 = strtotime($date);
$Start = date('h:i A', $date2);
$date3 = $row['EndTime'];
$date4 = strtotime($date3);
$End = date('h:i A', $date4);
$book = $row['Book_Date'];
$book2 = strtotime($book);
$DateBooked = date('d M Y', $book2);
$result .='
<tr>
<td>'.$DateBooked.'</td>
<td>'.$Start.'</td>
<td>'.$End.'</td>
<td>'.$row["Room_Desc"].'</td>
<td>'.$row["Meeting_Description"].'</td>
<td>'.$row["Admin_email"].'</td>
<td>'.$row["Requested_by"].'</td>
<td>'.$row["Remark"].'</td>
</tr>';
}
if ($result === "") {
$result = '
<tr>
<td colspan="8">No Booking Room Found</td>
</tr>';
}
$result = '<table>'.$result.'</table>';
echo $result;
}
?>
您的程序易受攻击。阅读: