插入与Laravel表有句点(speckeld)

时间:2017-04-09 11:51:02

标签: php mysql laravel orm eloquent

大家早上好。

我遇到了无法解决的问题

我试图用Laravel在数据库中保存记录,问题是其中一个字段的名称中有一个点。

这是结构: struct table

我试着这样做:

$emqu_accountavg = DB::table('emqu_accountavg_resptime')->insert([
                    'company_id' => $company_id,
                    '#Month' => $item['#Month'],
                    'System' => $item['System'],
                    'APPLID' => $item['APPLID'],
                    'GUI/NoGUI' => $item['GUI/NoGUI'],
                    'Resptime avg. (ms)' => $item['Resptime avg. (ms)'],
                ]);

但这是我得到的错误:

QueryException in Connection.php line 647:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Resptime avg. (ms)' in 'field list' (SQL: insert into `emqu_accountavg_resptime` (`company_id`, `#Month`, `System`, `APPLID`, `GUI/NoGUI`, `Resptime avg`.` (ms)`) values (1, 12017, BWP, APPL358552, GUI, 1581,4))

我也试过这样做:

emqu_accountavg_resptime::create([
                    'company_id' => $company_id,
                    '#Month' => $item['#Month'],
                    'System' => $item['System'],
                    'APPLID' => $item['APPLID'],
                    'GUI/NoGUI' => $item['GUI/NoGUI'],
                    'Resptime avg. (ms)' => $item['Resptime avg. (ms)'],
                ]);

不会发生错误并保存记录,但有点的记录会保留为空。 我检查了这个值:

$item['Resptime avg. (ms)']

好吧,问题是数据库中带有speckeld(point)的那个字段的名称

2 个答案:

答案 0 :(得分:0)

你可以看到第一个错误,列laravel试图插入是'Resptime avg`。(ms)`它应该是`Resptime avg。 (MS)`。

您可以在此处找到如何正确转义值:

Updating a MySQL column that contains dot (.) in its name

答案 1 :(得分:0)

我得到了答案,没有指定表格字段的名称,而是尊重存储表格的顺序,因此:

DB::insert('insert into emqu_accountavg_resptime values (?, ?, ?, ?, ?, ?)', [$company_id, $item['#Month'],$item['System'],$item['APPLID'],$item['GUI/NoGUI'],$item['Resptime avg. (ms)']]);

感谢大家的帮助。