首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有WARNING_COUNT、Mysql、php,如何插入表

如果没有WARNING_COUNT、Mysql、php,如何插入表
EN

Stack Overflow用户
提问于 2013-11-05 13:56:16
回答 1查看 192关注 0票数 0

我正在尝试插入一些从csv导出到数据库的盲值。在此过程中,它是插入任何我提供的,甚至没有给我任何警告。

例句:我的表结构如下所示

代码语言:javascript
复制
  #   column-name     type
  --   ---            ----
  1   id             int(11)
  2   name           varchar(32)
  3   bool           tinyint(1)

插入查询:

代码语言:javascript
复制
INSERT INTO `table_name` (`id`, `name`, `bool`) VALUES ('a', '11111', 'abced');

当我试图运行上面的查询时,它确实会插入一行,但会弹出一个警告。我找到了一个解决办法,我明白这不是正确的方法。

我的尝试

代码语言:javascript
复制
INSERT INTO `table_name` (`id`, `name`, `bool`) VALUES ('a', '11111', 'abced');

php

代码语言:javascript
复制
$warningCount = count fetched after executing the query "SELECT @@warning_count"
if($WarningCount > 0){ DELETE THE ROW INSERTED and ECHO error Message}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 14:16:46

尝试将SQL模式设置为STRICT_ALL_TABLES。

代码语言:javascript
复制
mysql> set @@session.sql_mode = STRICT_ALL_TABLES;
Query OK, 0 rows affected (0.00 sec)

mysql> create table t14 (id integer, name varchar(32), bool tinyint(1));
Query OK, 0 rows affected (0.05 sec)

mysql> insert into t14 set id=1, name="test", bool="bla";
ERROR 1366 (HY000): Incorrect integer value: 'bla' for column 'bool' at row 1

MySQL 文档声明:

为所有存储引擎启用严格模式。拒绝无效的数据值。以下是更多细节。 严格模式控制MySQL如何处理数据更改语句(如INSERT或UPDATE )中无效或缺失的值。由于几个原因,值可能无效。例如,它可能具有列的错误数据类型,或者它可能超出了范围。

然后插入事务。失败的insert查询不会被计算在内。请记住,在“全部或无”规则的意义上,MySQL事务不是完全原子化的。您可以使用一半的语句提交事务,而另一半则失败。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19790694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档