【问题标题】:Laravel - How to use session username in queryLaravel - 如何在查询中使用会话用户名
【发布时间】:2017-04-10 11:53:32
【问题描述】:

我正在尝试根据会话用户名显示表格,但出现以下错误。当它是id 时它正在工作,但当它是username 它不是

SELECT tb_list.* FROM tb_list  
WHERE myusername = ".Session::get('username')."

Connection.php 第 662 行中的 QueryException:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'ORDER BY id asc LIMIT 0 , 10' 附近使用正确的语法(SQL:SELECT tb_list。 FROM tb_list WHERE username = ORDER BY id asc LIMIT 0 , 10 )*

提前致谢

假设会话所有者的用户名是 john

Table with NO session
WHERE tb_list.task_id IS NOT NULL
+---------+----------+-------------+-----------------+
| task_id | username |  some_data  |    some_time    |
+---------+----------+-------------+-----------------+
|    1    |   john   |  some data  | 2015-02-29 1 pm |
|    2    |   jack   |  some data  | 2015-02-29 2 pm |
|    3    |   john   |  some data  | 2015-02-29 3 pm |
|    4    |   bill   |  some data  | 2015-02-29 4 pm |
+---------+----------+-------------+-----------------+

Table with john's session
WHERE username=".Session::get('username')."
+---------+----------+-------------+-----------------+
| task_id | username |  some_data  |    some_time    |
+---------+----------+-------------+-----------------+
|    1    |   john   |  some data  | 2015-02-29 1 pm |
|    3    |   john   |  some data  | 2015-02-29 3 pm |
+---------+----------+-------------+-----------------+

【问题讨论】:

  • 你为什么要从表中获取 * 并且你是在尝试登录用户?如果是,您不需要只查询 dd(Auth::user()) 并获取登录用户的所有信息。
  • 显示包含与会话所有者相同用户名的行
  • 那么您不是在寻找会话所有者的行吗?
  • myusername 是从 users 表中获取的选择框字段。所以如果任何一行包含与会话所有者相同的用户名,就会显示出来
  • 你能详细解释一下你想做什么吗?

标签: php mysql laravel session


【解决方案1】:

我认为这是因为您缺少单引号。当您将字符串值传递给 sql 查询语句时,您必须加上单引号。 例如,

SELECT tb_list.* FROM tb_list WHERE myusername = '".Session::get('username')."';

试试这个。

【讨论】:

  • 我试过你的。现在没有错误,但表是空的。
  • 也许你应该试试 echo Session::get('username');
  • 我试过这个并解决了。 return " WHERE username = '".Auth::user()->username."' ";
  • 谢谢。你启发了我:)
【解决方案2】:
return " WHERE username = '".Auth::user()->username."' ";

这成功了。

【讨论】:

    猜你喜欢
    • 2016-01-02
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多