我已经尝试解决我的问题大约一天左右,我已经在StackOverflow上阅读了尽可能多的帖子,然后才提出这个问题,但是我必须接受这已经打败了我并且我确信它可以解决。
我正在使用数据库会话将需要访问的变量存储到同一个PHP文件中。简而言之,这就是问题所在!
从网页上,每页加载多个调用到我的php文件,每个调用都传递一个不同的参数,例如:domain.com?el-1,domain.com?elel,domain.com?elel等每页最多20个负载。他们的工作是返回从数组中选择的图像。
我正在使用PDO并使用“PDO :: ATTR_PERSISTENT => true”
我选择数据库会话有两个原因。 1)其中一种模式是同步返回的图像,使它们都返回各自阵列中的第二或第三个图像,以及2)最后一次调用是当他们点击Call to Action按钮时我们使用Session Variables和store到数据文件中发送图像的索引。
我希望这有道理吗? : - )
根据我的研究,可以
$session = new Session;
在每个调用中,因为如果一个Session已经被缓存,它将不会创建一个新的Session,这似乎没问题,我希望!
另一个问题是(正如您所知),浏览器以随机顺序进行这些调用,因此当我尝试同步结果时,我想使用来自?el = 1的索引并让其他调用使用该值。到目前为止,我尝试了以下内容:
$session = new Session;
$_SESSION['el_01'] = 0;
if( $passedParameter == "1" )
{
$_SESSION['el_01'] = calculatedIndex; // Always between 1 and 'n'
}
else
{
while ( $_SESSION['el_01'] == 0) { sleep(.1);}
}
注意:我知道sleep()函数不是一个优雅的解决方案,但我只是想让它先工作。
结果是所有其他的调用都使用?el = 2,?el-3等...只需坐下并挂起,直到30秒后PHP超时。
当我查看MySQL数据库时,el_01被存储为有效值而不仅仅是0,因此其他人可以读取。
如何解决此问题,以便在调用中看到我的变量。