查询后是否可以检查数据是否被截断?

时间:2015-04-20 16:42:41

标签: mysql mysqli

如果我的表有一些varchar列,其长度显然会受到限制,那么只要插入太大的值失败,我就必须在前端显示。例如,如果name列的限制为20,但有人输入的字符长度为30个字符,我应该通知他们错误。

当应用程序变大时,这将成为很多工作。

我想要的是,让生活变得更轻松,并且不要为了用户的每一步而忽略个人限制。旅程,只是继续执行应用程序的正常运行,但向他们显示一个警告,他们的数据没有完整保存,因为它太长了。因此,如果MySQL提供了一些方法,可以让我询问是否所有数据都是完整保存的,或者某些strings由于各自的varchar字段较短而被截断(或者可能是我可以检查的MySQLi对象),然后我在数据库中保存数据的主要方法总是可以在执行任何insertsupdates后检查,并在下一页加载时发出警告。

MySQL(或MySQLi)是否提供此类功能?

1 个答案:

答案 0 :(得分:0)

当然可以。当数据被截断时,MySQL会发出警告。

您可以通过查看@@warning_count

来查看是否发生了任何警告
SELECT @@warning_count;

或者

SHOW COUNT(*) WARNINGS; 

检查发生了什么警告:

SHOW WARNINGS [LIMIT [offset,] row_count]

更多信息: http://dev.mysql.com/doc/refman/5.0/en/show-warnings.html