我有两个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']
在那里,正确且可以回应。
这可能是什么问题?
答案 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)
您无法序列化资源对象,这就是您无法在会话中保留它的原因