Laravel身份验证失败-查询中没有引号

时间:2019-01-10 05:50:02

标签: laravel laravel-5.7

在这上面挠头... 登录时出现500错误,这似乎与laravel(5.7)无法运行此查询有关

SQL: select * from `users` where `email` = fred@example.com and `users`.`deleted_at` is null limit 1

在mysql中检查它(通过以laravel用户身份登录-它肯定会失败。 正确的查询应该是

select * from `users` where `email` = 'fred@example.com' and `users`.`deleted_at` is null limit 1

注意电子邮件周围的引号

请注意,其来源是Laravel内部流程,而不是我写的任何内容。

我最近确实做了作曲家更新,只能怀疑某些东西坏了,但是它看起来太基础了,我怀疑它是laravel更新

2 个答案:

答案 0 :(得分:0)

使用Laravel雄辩的查询生成器

假设您的用户表模型名为“用户”,然后尝试使用以下查询:

$users = User::where('email','=','fred@example.com')
               ->wherenull('deleted_at')
               ->first();

然后,Laravel应注意防止所有注入,并以正确的格式将字符串放入查询中。

答案 1 :(得分:0)

令人惊奇的是,这是通过意识到nginx使用较旧版本的php作为fpm套接字解决的...对于以后的探索者,在这方面有一个WTF时刻。

不知道为什么稍微不同版本的php会导致如此模糊的错误..但是,嘿,它的幼虫和魔术...

因此,解决方案步骤..检查运行的php版本,php -v,检查套接字ls /run/php(在Ubuntu上,您的平台可能有所不同),检查/ etc / nginx / sites-available配置。然后确保它们都使用相同的php版本