-3

你好,

我想$_SESSION['id']在这样的 SQL 请求中使用:

$jeLis = $db->query("SELECT * FROM bibliotheque WHERE user_id = $_SESSION['id']");
$resJeLis = $jeLis->fetchAll(PDO::FETCH_ASSOC);

那是行不通的。我尝试过使用连接,但没有成功".$_SESSION['id']."

所以,为了简化,我试着做$_SESSION['id'] = $userID然后写

$jeLis = $db->query("SELECT * FROM bibliotheque WHERE user_id = $userID");
$resJeLis = $jeLis->fetchAll(PDO::FETCH_ASSOC);

但它也不起作用。

当我这样做时,var_dump($_SESSION['id'])我得到了结果。但是当我这样做时$_SESSION['id'] = $userIDvar_dump($userID)我没有结果。

我不能吗$_SESSION['id'] = $userID?我在某个地方犯了错误吗?

4

5 回答 5

3

你倒过来了。

$userID = $_SESSION['id'];

或者你可以这样做:

$jeLis = $db->query("SELECT * FROM bibliotheque WHERE user_id = {$_SESSION['id']}");
于 2013-05-15T15:34:59.947 回答
1

用这种方式...

$userID = $_SESSION['id'];
于 2013-05-15T15:37:56.457 回答
0

谢谢大家的帮助。我的代码正在运行。我不知道为什么我为测试我的网站而创建的虚构帐户会自行断开连接。所以,很明显,它找不到 $_SESSION。

于 2013-05-15T16:14:10.063 回答
0

它应该是

$userID = $_SESSION['id']

或者使用卷曲的背衬:

$jeLis = $db->prepare("SELECT * FROM bibliotheque WHERE user_id = {$_SESSION['id']}");

您还可以使用准备:

$jeLis = $db->prepare("SELECT * FROM bibliotheque WHERE user_id = ?");
$jeLis->execute(array($_SESSION['id']));
$resJeLis = $jeLis->fetchAll(PDO::FETCH_ASSOC);
于 2013-05-15T15:39:58.020 回答
0

你的变量声明是错误的,它应该在相反的一侧你需要先插入变量来声明然后等于值,所以在你的情况下

$userID = $_SESSION['id'];
于 2013-05-15T15:36:08.960 回答