为了账号安全,请及时绑定邮箱和手机立即绑定

使用php7从mysql打印数据

使用php7从mysql打印数据

PHP
ABOUTYOU 2021-06-01 13:23:58
我有一个包含“电子邮件、senha、apelido 和 data_criacao”列的表格。我使用 PHP 和 MySQL 创建了一个登录系统,现在我想显示一条带有用户昵称(即 Apelido)的消息,但我不能。我试了一整夜...我试过获取,试过一段时间循环......文件:登录.php<?phpsession_start();include('conexao.php');if(empty($_POST['email']) || empty($_POST['senha'])){header('Location: index.php');exit();}$email = mysqli_real_escape_string($conexao, $_POST['email']);$senha = mysqli_real_escape_string($conexao, $_POST['senha']);$query = "select apelido from cadastros where email = '{$email}' and senha=md5('{$senha}')";$result1 = mysqli_query($conexao, $query);$row1 = mysqli_num_rows($result1);if($row1 == 1){$apelido = $row1['apelido'];$_SESSION['usuario'] = $apelido;header('Location: painel.php');exit();} else {header('Location: index.php');exit();}?>文件:Panel.php<?phpsession_start();include('verifica_login.php');?><h2><?php echo $_SESSION['usuario']; ?></h2><h2> <a href="logout.php">SAIR</h2>它应该显示“apelido”,但是当我提交表单时没有任何反应。如果我更改$_SESSION['usuario'] = $apelido;为$_SESSION['usuario'] = $email;,它可以正常工作,它会正常显示电子邮件
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

您实际上并未获取查询返回的数据。$result1只是一个指向整个结果集的指针,它不包含实际的行数据。要获取数据,您必须获取它(一次一行,或一次全部)。大多数 PHP/mysqli 教程都会向您展示这个额外的步骤。您已尝试使用 的结果mysqli_num_rows(),它只是一个显示查询返回的行数的数值,就好像它是一个包含实际行数据的数组。


在您的情况下,您似乎只期待一行,因此您可以这样做:


$result1 = mysqli_query($conexao, $query);


if ($row1 = mysqli_fetch_assoc($result1)) //if there is a row to read, this will both assign the row data into $row1 and also cause the if statement to return true

{

  $apelido = $row1['apelido'];

  //...etc


查看完整回答
反对 回复 2021-06-19
  • 1 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信