使用PHPUnit

时间:2018-03-16 08:28:18

标签: php sql laravel phpunit

Phpunit在我的查询中检测到错误

SQLSTATE[HY000]: General error: 1 near "(": syntax error (SQL:
    select * from "forms"
    where "factual_checkout_at" is null
    and "plan_checkout_at" >= ?
    and CONCAT(UPPER(RIGHT(name, 3)), id) = ?
    and "forms"."deleted_at" is null and "forms"."type" in (?, ?, ?) limit 1
)

我试图获取包含给定代码的表单。 (在这种情况下,我将用户姓名的最后3位数与他们的ID组合在一起。)

问题是,我的应用程序在此查询中运行良好,事务进展顺利,但不在phpunit上。

以下是获取该表格的方法(laravel):

$form = Form::whereNull('factual_checkout_at')
            ->where('plan_checkout_at', '>=', Carbon::today())
            ->whereRaw('CONCAT(UPPER(RIGHT(name, 3)), id) = ?', $code)
            ->firstOrFail();
return new FormResource($form);

我错过了什么?
提前谢谢!

1 个答案:

答案 0 :(得分:1)

所以我确实错过了我的查询语法,因为我在测试中使用了sqlite。

将查询更改为

... and upper(substr(name, -3)) || id = ? ...

解决了这个问题。 感谢@Wreigh!