会话变量在echo中工作,但在sql查询中不工作

mwyxok5s  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(335)

我想传递 login.php 变量 $user_key & $user_id 到另一个文件 statusdata.php 我用了一个会话。在 statusdata.php 我想在的sql查询中使用这些会话变量值 statusdata.php 文件。
为了实现这一目标 login.php 我传递变量的值 $user_key & $user_id 到会话变量 $_SESSION["key"] & $_SESSION["id"] 分别在 statusdata.php 我调用session变量并在变量中传递它们的值 $user_key & $user_idstatusdata.php 现在的问题是当使用变量 $user_key & $user_id 在sql查询中,它没有返回正确的输出,但是在echo中使用了相同的变量,它给出了正确的值,这意味着当我回显变量但在sql中不工作时,会话工作正常。我也尝试过直接传递session变量,但是在echo中发生了同样的事情,但在sql中没有。 login.php ```

`statusdata.php`

输出 `login.php` ```
Login Success

输出 statusdata.php ```
[]
key is .8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED..
id is .1997..

我想要的输出 `statusdata.php` (如果在变量中使用直接值,我就得到了它 `$user_key` &  `$user_id` 不是login.php中的会话变量)

[{"applications.application_id":1997,"applications.applicant_name":"Tanishq","applications.applicant_aadhaar":"987654321","applications.applicant_phone":"123456789","applications.subject":"asdnjsnadnksncdnsjnvsavasdnjsnadnksncdnsjnvsav","applications.date":"2018-07-02 09:11:47","applications.description":"asdnjsnadnksncdnsjnvsavasdnjsnadnksncdnsjnvsavasdnjsnadnksncdnsjnvsavasdnjsnadnksncdnsjnvsavasdnjsnadnksncdnsjnvsav","applications.chairperson_remark":"asdnjsnadnksncdnsjnvsavasdnjsnadnksncdnsjnvsav","applications.status":1,"officer_accounts.name_of_officer":"Chayan Bansal","applications.officer_remark":"asdnjsnadnksncdnsjnvsavasdnjsnadnksncdnsjnvsav","applications.last_update_on":"2018-07-22 09:14:25"}]
key is 8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED.
id is 1997.

注:我是取 `statusdata.php` json格式的sql查询,最后我在android中提取它。
请帮帮我,我已经试过了所有其他类似问题的建议,但没有任何帮助
9o685dep

9o685dep1#

看起来更像是打字错误。你有这个吗 login.php :

$_SESSION["key"] = ".$user_key.";
$_SESSION["id"] = ".$user_id.";

这会玷污你原来的价值观。。。在它们周围添加不必要的点。通过简单地分配如下内容来清理:

$_SESSION["key"] = $user_key;
$_SESSION["id"] = $user_id;

它应该开始运作得更好。
旁注,您正在使用 prepare ,但不使用 bind_param . 更改sql prepare 以下(注意 ? 占位符),并添加 bind_param :

$stmt = $conn->prepare("SELECT applications.application_id, applications.applicant_name, applications.applicant_aadhaar, applications.applicant_phone, applications.subject, applications.date, applications.description, applications.chairperson_remark, applications.status, officer_accounts.name_of_officer, applications.officer_remark, applications.last_update_on 
         FROM applications INNER JOIN officer_accounts ON applications.account_id = officer_accounts.account_id 
         WHERE applications.application_id = ? AND applications.application_key = ?;");
$stmt->bind_param('ss',$user_id,$user_key);

相关问题