回显时不显示会话信息/数据

时间:2019-07-19 06:21:33

标签: php

我正在尝试在名为$_SESSION['about']的会话中回显数据库概要文件中的信息,但是每当回显任何内容时,都不会显示任何信息。我希望它在about_me表中显示信息。

我将信息插入数据库,并尝试将其设置为会话,并在其他页面上使用该信息无济于事。

if(isset($_POST['aboutme-submit'])){

    require 'profiles.dbh.inc.php';

$about = mysqli_real_escape_string($conn2 ,$_POST['aboutme']);

$sql3 = "INSERT INTO profile(about_me ) VALUEs('$about')";
mysqli_query($conn2, $sql3);

$query = "SELECT * FROM profile WHERE about_me;"; 
$result = mysqli_query($conn2, $query); 
$result_check = mysqli_num_rows($result);
if ($result_check > 0){
    while ($row = mysqli_fetch_assoc($result)) {
   }
}
session_start();
$_SESSION['about'] = $row['about_me'];
header("Location: ../profiles.php?nice.")

我希望在使用$_SESSION['about']时显示about_me行中信息的输出,但是实际输出完全没有。

1 个答案:

答案 0 :(得分:1)

if ($result_check > 0){
    while ($row = mysqli_fetch_assoc($result)) {
   }
}

在数据库结果集上进行这种循环的方式是,只要$ row包含非空数据结构,它就会循环-在处理完最后一条记录后,fetch函数在下一次调用时将返回NULL ,从而使循环在该点结束。

 $_SESSION['about'] = $row['about_me'];

因为在循环之后执行了 ,所以$ row此时不包含任何数据,它为NULL-访问“ {of” NULL的属性about_me当然不会什么都不会退回。

(请首先开始启用正确的PHP错误报告-然后PHP有机会告诉您有关此类错误的信息。请参见f How do I get PHP errors to display?

因此,这里的问题不是会话本身,而是您试图将数据写入会话的那一刻-您实际上不再拥有数据了。当$ row被NULL覆盖时,您需要在循环内处理$ row,而不是在循环之后。

((如果只希望返回一条记录,则不需要循环。但是,如果您确实希望有多条记录并在它们上循环,则可能需要将它们添加到数组中,否则如果您每次都覆盖会话条目,则只有最后一个值会保留。)