繁体   English   中英

Laravel-如何在查询中使用会话用户名

[英]Laravel - How to use session username in query

我试图显示基于会话用户名的表,但出现以下错误。 当它是id它正在工作,但是当它是username时,它却不在

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

Connection.php第662行中的QueryException:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请参见表11。 检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第2行的'ORDER BY id asc LIMIT 0,10'附近使用(SQL:SELECT tb_list。FROM tb_list WHERE用户名= 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 |
+---------+----------+-------------+-----------------+

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

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

试试这个。

return " WHERE username = '".Auth::user()->username."' ";

这个解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM