我正在使用我的网页设置分页。我有一个包含大结果集的resource
,创建如下:
$sql = "select * from some_table";
pg_prepare($connection,"list",$sql);
$result = pg_execute($connection,"list",array());
$_SESSION['resultSet']=$result;
理论上,这会将数据库结果集的resource
存储在SESSION
中,我可以使用指针选择“接下来的25行”,然后选择“接下来的25行”使用ajax调用。
现在,由于某种原因,会话中存储的resource
存储为integer
,其值为零(换句话说为false
)。
所以当我调用这段代码时(使用AJAX):
$increment = 25;
$array = array();
$i = 0;
while ($i<$amount) {
$row = pg_fetch_array($_SESSION['resultSet'],null,PGSQL_ASSOC);
array_push($array,$row);
$i++;
}
echo json_encode($array);
我收到一条错误消息,指示resource
函数中的pg_fetch_array
是一个整数值。
有没有人有任何想法如何正确实现这样的想法?
谢谢。
答案 0 :(得分:1)
您绝对不希望将结果集存储在会话中并从会话中提取页面。这就是你拥有数据库的原因。
您要做的是在javascript代码中跟踪您的分页数据(最初可能来自PHP)。然后,当您触发ajax请求时,请确保将分页数据(当前页码,每页结果数)传递到服务器端脚本。然后,您的服务器端脚本负责将正确的LIMIT发送到您的DBMS(数据库服务器)。