mysql - Laravel Eloquent 替换

标签 mysql laravel command eloquent

我正在使用 Laravel 4 命令创建数据库迁移脚本。

所有数据库迁移过程都很好,但我在更改用户前缀时遇到了问题:我需要将 USER-JOHN-JB 更改为 USER-JOHN-OD,所有用户后缀都需要从 '-JB' 更改为'-OD'。

我当前的代码行是:

DB::table('users')->update(['username' => DB::raw("REPLACE(username, '-".$suffix."', '-".$thisSuffix."')")]);

如果我在 REPL 中运行这段代码,它可以正常工作,但它在命令中不起作用。

查看生成的 SQL 查询的日志:

update `users` set `username` = REPLACE(username, "-JB
", "-OD")

由于某种原因,一个换行符被插入到查询中。我不确定这是否与问题有关。

有人知道怎么解决吗? 非常感谢任何帮助。

提前致谢。

最佳答案

正如 Ben Harold 所指出的,问题来自包含换行符的 $suffix。添加 trim() 解决了这个问题。

关于mysql - Laravel Eloquent 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29803476/

相关文章:

php - 在 seeInDatabase 中使用逻辑或

windows - 如何在 Windows 命令行上获取一组文件的最后修改日期?

MySQL 与 SQL 命令

php - 如果记录存在则更新或插入 php/mysql

php - CakePHP 与内部连接

php - Laravel 5.8 在验证规则中使用数组

php - Laravel 5 身份验证过滤器不起作用

silverlight - MVVM:命令与事件处理程序

具有不同where子句的单个表中的mysql多个计数

mysql - 使用一个查询的结果多次查询另一个表(MySQL)