【问题标题】:MySQL SELECT From Current Session UserMySQL 从当前会话用户中选择
【发布时间】:2011-10-28 05:47:39
【问题描述】:

我正在使用 PHP 并且有 session_start();和页面顶部的 $_SESSION['username']。用户登录正常。

问题是,我试图从登录的用户那里提取和显示数据。下面是我当前的查询,它来自表中的第一个用户,而不是 $_SESSION['username'] 用户。如何调整 SELECT 以指定从当前登录的用户中提取?谢谢。

$result = mysql_query("SELECT * FROM members")
or die(mysql_error());  

$row = mysql_fetch_array( $result );

echo "<strong>bio:</strong> ".$row['bio'].'<br />';

【问题讨论】:

  • 这是微不足道的。您应该阅读 SQL。
  • SELECT * FROM members WHERE some_id_field = something_in_your_session

标签: php mysql


【解决方案1】:
mysql_query('SELECT * FROM members WHERE username = "'
  . mysql_real_escape_string($_SESSION['username']) . '"')
  or trigger_error(mysql_error());

您应该阅读 SQL,并在阅读时了解 SQL 注入。

【讨论】:

  • 用户名旁边的 ' 符号是什么?
  • 什么意思?什么符号?您只是输入了您要询问的符号,不是吗?
  • 我的意思是,我应该为 username = 输入什么,以便它从当前会话用户中提取?感谢您的帮助,是的,我正在学习 mysql ......我也在尝试通过简单地做它并阅读网站文档来学习它
  • 建议“了解 SQL 注入” + 但在示例代码中使用纯会话变量 = 你做错了
  • 如果你有一个会话变量$_SESSION['username'],那么我在答案中发布的代码应该可以工作......
【解决方案2】:

您需要为查询提供 WHERE 子句,指定您希望检索的数据。 Xeon06 没错,这是 SQL 101。

【讨论】:

    【解决方案3】:

    您应该查看SQL WHERE clause

    【讨论】:

      【解决方案4】:

      您需要使用WHERE 子句。它应该在任何 SQL 手册的第一章中解释:

      SELECT foo, bar
      FROM members
      WHERE members_id=31416
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        相关资源
        最近更新 更多