大家早上好。
我有一个无法解决的问题
我正在尝试使用 Laravel 在数据库中保存一条记录,问题是其中一个字段的名称中有一个点。
这是结构:结构表
我试图这样做:
$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)']
好的,问题是数据库中带有斑点(点(的字段的名称
您可以在第一个错误中看到 laravel 尝试插入的列是"Resptime avg"。 (毫秒(' 它应该是"平均(毫秒("。
您可以在此处找到如何正确转义值:
更新名称中包含点 (.( 的 MySQL 列
我得到了答案,但没有指定表字段的名称,但尊重存储顺序相同,因此:
DB::insert('insert into emqu_accountavg_resptime values (?, ?, ?, ?, ?, ?)', [$company_id, $item['#Month'],$item['System'],$item['APPLID'],$item['GUI/NoGUI'],$item['Resptime avg. (ms)']]);
感谢大家的帮助。