gpt4 book ai didi

php - 如何在 MySQL 查询中使用 session 变量

转载 作者:行者123 更新时间:2023-12-01 00:47:28 25 4
gpt4 key购买 nike

我尝试执行此查询 -

$sql="INSERT INTO REGISTRATIONS VALUES ('$_SESSION['fname']', '$_SESSION['username']', '$_SESSION['height']', '$_SESSION['image']');";

还有这个——

$sql="INSERT INTO REGISTRATIONS VALUES ($_SESSION['fname'], $_SESSION['username'], $_SESSION['height'], $_SESSION['image']);";

但是这两个都返回一个错误。所以我将 session 变量存储到普通的 php 变量中。并尝试执行查询 -

$name = $_SESSION['fname'];
$username = $_SESSION['username'];
$height = $_SESSION['height'];
$image = $_SESSION['image'];

$sql="INSERT INTO REGISTRATIONS VALUES ('$name', '$username', '$height', '$image');";

它奏效了。

但我想知道为什么前两个不起作用以及为什么我们必须将 Session 保存到另一个变量中才能使其起作用?

请帮忙:)

最佳答案

问题

这段代码有语法错误

$sql = "
INSERT INTO REGISTRATIONS
VALUES (
'$_SESSION['fname']',
'$_SESSION['username']',
'$_SESSION['height']',
'$_SESSION['image']'
);
";

'$_SESSION['fname']' 在这里导致错误。如果没有特殊语法(请参见下文),您将无法访问字符串中的数组索引。

解决方案

使用连接运算符分隔字符串和变量。

$sql = "
INSERT INTO REGISTRATIONS
VALUES ('"
.$_SESSION['fname'].
"', '"
.$_SESSION['username'].
"', '"
.$_SESSION['height'].
"','"
.$_SESSION['image'].
"');";

或使用 PHP 的 variable interpolation ,请参阅“复杂( curl )语法”。这是首选方式。

$sql = "
INSERT INTO REGISTRATIONS
VALUES (
'{$_SESSION['fname']}',
'{$_SESSION['username']}',
'{$_SESSION['height']}',
'{$_SESSION['image']}'
);
";

请注意,这仅适用于双引号字符串。

关于php - 如何在 MySQL 查询中使用 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20142511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com