Dha*_*hit 4 postgresql laravel
例如,我有一张桌子...
create table emp(
empno integer,
ename character varying(255),
job character varying(255),
mgr integer,
hiredate timestamp without time zone,
sal double pricision,
comm integer,
deptno integer
)
Run Code Online (Sandbox Code Playgroud)
当我尝试插入数据时...
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1,'abc','abc','e','2018-10-12 00:00:00',50.50,1,'f');
Run Code Online (Sandbox Code Playgroud)
然后这给了我一个错误,invalid text representation 7 error invalid input syntax for integer因为我已经插入了字符串值,mgr并且deptno只能通过查看值才能找到它,但是PostgreSQL没有给我确切的列名,在该列名中遇到了这样的问题。有什么办法可以在错误消息本身中获取列名。因为当我们有超过50到60列时,要找到有问题的列是一个挑战。
您不必找出哪一列是错误的,因为在插入数据库之前,应确保输入的格式正确。
您正在使用Laravel,因此您应该利用其提供的强大工具集进行验证:https ://laravel.com/docs/5.8/validation
例如,在您的情况下,应mgr在控制器的开头使用以下规则进行验证:
$request->validate([
'mgr' => 'number'
]);
Run Code Online (Sandbox Code Playgroud)
如果不遵守该规则,则将引发异常,从而在用户尝试输入数据时(而不是在后端尝试在数据库中插入数据时)失败。
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |