当我向mySQL数据库提交表单字段时,是否有办法将数据库设置为自动丢弃超过数据字段长度的任何数据?自动修剪提交给MySQL的字符串的长度
我知道我可以通过编程来完成,但是可以将数据库设置为丢弃多余的数据而不会抛出错误?
编辑清晰度
我的继承人插入语句
<cfquery datasource='#arguments.dsn#' name="addPatient">
INSERT INTO patients(patientFirstname
,patientLastname
,nhsNumber
,patientDOB
,patientTitle
,address1
,address2
,address3
,address4
,postcode
,patientPhone1
)
VALUES (<cfqueryparam value="#arguments.patientFirstname#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientLastname#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.nhsNumber#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientDOB#" cfsqltype="CF_SQL_TIMESTAMP"/>
,<cfqueryparam value="#arguments.patientTitle#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address1#" cfsqltype="CF_SQL_VARCHAR"/>
,<cfqueryparam value="#arguments.address2#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address3#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address4#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.postcode#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientPhone1#" cfsqltype="CF_SQL_VARCHAR"/>
)
</cfquery>
表的字段patientPhone为VARCHAR(20)
如果我不progamatically确认提交,只是在形式值30砰字符长我错误了(当我以为它会做的只是存储前20个字符)
Data truncation: Data too long for column 'patientPhone1' at row 8
当我设置了我记得选择InnoDB和事务性和传统仿真向导中的DB(这是建议,如果我没记错的话)
不是在上述情况下,这是我的问题 – Saul 2010-07-06 13:54:39
切换您的MySQL模式不使用STRICT。这里是文档链接: http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html – 2010-07-06 14:23:38
似乎不是5.6中的默认值 – shrimpwagon 2014-10-27 19:44:33