Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 会话变量在echo中工作,但在SQL查询中不工作_Php_Mysql_Sql_Session_Session Variables - Fatal编程技术网

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

Php 会话变量在echo中工作,但在SQL查询中不工作,php,mysql,sql,session,session-variables,Php,Mysql,Sql,Session,Session Variables,我想将login.phpvariables$user\u key&$user\u id的值传递到我使用会话的另一个文件statusdata.php。在statusdata.php中,我想在statusdata.php文件的sql查询中使用这些会话变量值 为了在login.php中实现这一点,我将变量$user\u key&$user\u id的值传递给会话变量$\u session[“key”]&$\u session[“id”]然后分别在statusdata.php中调用会话变量,并在stat

我想将
login.php
variables
$user\u key
&
$user\u id
的值传递到我使用会话的另一个文件
statusdata.php
。在
statusdata.php
中,我想在
statusdata.php
文件的sql查询中使用这些会话变量值

为了在
login.php
中实现这一点,我将变量
$user\u key
&
$user\u id
的值传递给会话变量
$\u session[“key”]
&
$\u session[“id”]
然后分别在
statusdata.php
中调用会话变量,并在
statusdata.php的变量
$user\u key
$user\u id
中传递它们的值

现在的问题是,在SQL查询中使用变量
$user\u key
&
$user\u id
时,它没有返回正确的输出,但在echo中使用了相同的变量,它给出了正确的值,这意味着当我回显变量时会话工作正常,但在SQL中不工作。我也尝试过直接传递session变量,但同样的事情也发生在echo中,而不是SQL中

login.php

<?php
// Start the session
session_start();

require "conn.php";

$user_key = '8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED';
$user_id = '1997';

$mysql_qry = "select * from applications where application_key = '".$user_key."' and application_id like '".$user_id."';";

$result = mysqli_query($conn, $mysql_qry);
if (mysqli_num_rows($result) > 0){
    $_SESSION["key"] = ".$user_key.";
    $_SESSION["id"] = ".$user_id.";
    echo "Login Success";
}

else {
    echo "Login Not Success";   
}
?>
<?php

// Start the session
session_start();

require "conn.php";

$user_key = "-1";
if (isset($_SESSION["key"])) {
  $user_key = $_SESSION["key"];
}

$user_id = "-1";
if (isset($_SESSION["id"])) {
  $user_id = $_SESSION["id"];
}


 //creating a query
 $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 = '".$user_id."' AND applications.application_key = '".$user_key."';");

 //executing the query 
 $stmt->execute();

 //binding results to the query 
 $stmt->bind_result($id, $name, $aadhaar, $phone, $subject, $date, $description, $chairperson, $status, $officername, $officerremark, $lastupdate);

 $applications = array(); 

 //traversing through all the result 
 while($stmt->fetch()){
 $temp = array();
 $temp['applications.application_id'] = $id; 
 $temp['applications.applicant_name'] = $name; 
 $temp['applications.applicant_aadhaar'] = $aadhaar; 
 $temp['applications.applicant_phone'] = $phone; 
 $temp['applications.subject'] = $subject;
 $temp['applications.date'] = $date;
 $temp['applications.description'] = $description;
 $temp['applications.chairperson_remark'] = $chairperson;
 $temp['applications.status'] = $status;
 $temp['officer_accounts.name_of_officer'] = $officername;
 $temp['applications.officer_remark'] = $officerremark;
 $temp['applications.last_update_on'] = $lastupdate;
 array_push($applications, $temp);
 }

 //displaying the result in json format 
 echo json_encode($applications);

 // Echo session variables that were set on previous page
 echo "<br>key is " . $user_key . ".<br>";
 echo "id is " . $user_id . ".";

?>
Login Success
[]
key is .8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED..
id is .1997..
输出
login.php

<?php
// Start the session
session_start();

require "conn.php";

$user_key = '8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED';
$user_id = '1997';

$mysql_qry = "select * from applications where application_key = '".$user_key."' and application_id like '".$user_id."';";

$result = mysqli_query($conn, $mysql_qry);
if (mysqli_num_rows($result) > 0){
    $_SESSION["key"] = ".$user_key.";
    $_SESSION["id"] = ".$user_id.";
    echo "Login Success";
}

else {
    echo "Login Not Success";   
}
?>
<?php

// Start the session
session_start();

require "conn.php";

$user_key = "-1";
if (isset($_SESSION["key"])) {
  $user_key = $_SESSION["key"];
}

$user_id = "-1";
if (isset($_SESSION["id"])) {
  $user_id = $_SESSION["id"];
}


 //creating a query
 $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 = '".$user_id."' AND applications.application_key = '".$user_key."';");

 //executing the query 
 $stmt->execute();

 //binding results to the query 
 $stmt->bind_result($id, $name, $aadhaar, $phone, $subject, $date, $description, $chairperson, $status, $officername, $officerremark, $lastupdate);

 $applications = array(); 

 //traversing through all the result 
 while($stmt->fetch()){
 $temp = array();
 $temp['applications.application_id'] = $id; 
 $temp['applications.applicant_name'] = $name; 
 $temp['applications.applicant_aadhaar'] = $aadhaar; 
 $temp['applications.applicant_phone'] = $phone; 
 $temp['applications.subject'] = $subject;
 $temp['applications.date'] = $date;
 $temp['applications.description'] = $description;
 $temp['applications.chairperson_remark'] = $chairperson;
 $temp['applications.status'] = $status;
 $temp['officer_accounts.name_of_officer'] = $officername;
 $temp['applications.officer_remark'] = $officerremark;
 $temp['applications.last_update_on'] = $lastupdate;
 array_push($applications, $temp);
 }

 //displaying the result in json format 
 echo json_encode($applications);

 // Echo session variables that were set on previous page
 echo "<br>key is " . $user_key . ".<br>";
 echo "id is " . $user_id . ".";

?>
Login Success
[]
key is .8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED..
id is .1997..
输出
statusdata.php

<?php
// Start the session
session_start();

require "conn.php";

$user_key = '8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED';
$user_id = '1997';

$mysql_qry = "select * from applications where application_key = '".$user_key."' and application_id like '".$user_id."';";

$result = mysqli_query($conn, $mysql_qry);
if (mysqli_num_rows($result) > 0){
    $_SESSION["key"] = ".$user_key.";
    $_SESSION["id"] = ".$user_id.";
    echo "Login Success";
}

else {
    echo "Login Not Success";   
}
?>
<?php

// Start the session
session_start();

require "conn.php";

$user_key = "-1";
if (isset($_SESSION["key"])) {
  $user_key = $_SESSION["key"];
}

$user_id = "-1";
if (isset($_SESSION["id"])) {
  $user_id = $_SESSION["id"];
}


 //creating a query
 $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 = '".$user_id."' AND applications.application_key = '".$user_key."';");

 //executing the query 
 $stmt->execute();

 //binding results to the query 
 $stmt->bind_result($id, $name, $aadhaar, $phone, $subject, $date, $description, $chairperson, $status, $officername, $officerremark, $lastupdate);

 $applications = array(); 

 //traversing through all the result 
 while($stmt->fetch()){
 $temp = array();
 $temp['applications.application_id'] = $id; 
 $temp['applications.applicant_name'] = $name; 
 $temp['applications.applicant_aadhaar'] = $aadhaar; 
 $temp['applications.applicant_phone'] = $phone; 
 $temp['applications.subject'] = $subject;
 $temp['applications.date'] = $date;
 $temp['applications.description'] = $description;
 $temp['applications.chairperson_remark'] = $chairperson;
 $temp['applications.status'] = $status;
 $temp['officer_accounts.name_of_officer'] = $officername;
 $temp['applications.officer_remark'] = $officerremark;
 $temp['applications.last_update_on'] = $lastupdate;
 array_push($applications, $temp);
 }

 //displaying the result in json format 
 echo json_encode($applications);

 // Echo session variables that were set on previous page
 echo "<br>key is " . $user_key . ".<br>";
 echo "id is " . $user_id . ".";

?>
Login Success
[]
key is .8C9333343C6C4222418EDB1D7C9F84D051610526085960A1732C7C3D763FFF64EC7F5220998434C896DDA243AE777D0FB213F36B9B19F7E4A244D5C993B8DFED..
id is .1997..
我希望从
statusdata.php
获得的输出(如果我在变量
$user\u key
&
$user\u id
中使用直接值,而不是login.php中的会话变量,我就会得到它)

注意:我将以JSON格式获取
statusdata.php
SQL查询的输出,最后我将在android中提取它


请帮帮我,我已经尝试了其他类似问题所建议的一切,但没有任何帮助

看起来更像是打字错误。您可以在
login.php
中找到它:

$_SESSION["key"] = ".$user_key.";
$_SESSION["id"] = ".$user_id.";
这会玷污你的原始价值观。。。通过在它们周围添加不必要的点。通过简单地分配以下内容来清理:

$_SESSION["key"] = $user_key;
$_SESSION["id"] = $user_id;
它应该开始更好地发挥作用


请注意,您使用的是
prepare
,而不是
bind_param
。将SQL
prepare
更改为以下内容(注意
占位符),并添加
bind_参数

$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);

在我看来,这个查询没有找到任何东西。您是否调试过启用mysqli异常?将此添加到脚本中,以查看是否有任何提示出现错误:
ini\u set('display\u errors',1);ini设置(“显示启动错误”,1);错误报告(E_全部);mysqli_报告(mysqli_报告错误| mysqli_报告严格)