使用Ajax的$ _SESSION

时间:2014-02-18 20:26:28

标签: php ajax session

我有两个php文件。

addbasket.php

<?php    
session_start();   
$link = $_SESSION['link'];  
if (isset($_SESSION['userid'])) {......}
?>

index.php

<?php 
session_start();   
$_SESSION['link'] = mysqli_connect("localhost","test","test","dbname");  
$link = $_SESSION['link'];
.... 
?>
  

文件addbasket.php由Ajax调用,并为文章(编号)和金额(编号)提供参数

但是mysqli_query不起作用。 似乎addbasket.php中没有$_SESSION['link']。 它不能是会话,因为$_SESSION['userid']在那里,正确且可以回应。

这可能是什么问题?

2 个答案:

答案 0 :(得分:3)

$_SESSION只能存储可序列化的数据。

mysqli_connect返回资源。资源可序列化。

您必须在每个请求中实例化该数据库连接。

编辑: 好的,现在我了解你的实际问题。 你需要的是某种形式:

<强> db.php中

$link = mysqli_connect("localhost","test","test","dbname");

<强>的index.php

require 'db.php';
$r = mysqli_query($link, 'SOME QUERY...');
....

<强> addbasket.php

require 'db.php';
$r = mysqli_query($link, 'SOME OTHER QUERY...');
....

答案 1 :(得分:1)

您无法序列化资源对象,这就是您无法在会话中保留它的原因