php-在mysql里批量插入数据

假如说我有这样一个表,我想往这个表里面插入大量数据 CREATE TABLE IF NOT EXISTS `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `name` varchar(255) NOT NULL default '' COMMENT '姓名', `age` int(11) NOT NULL default '0' COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表'; 批量插入 方法一、使用for循环插入 在往mysql插入少量数据的时候,…

mysql的sql_mode

之前遇到过一个问题,就是同样的sql insert语句,在我的环境就执行不成功,在别人环境可以执行成功,而且我们的表结构是一样的!!! 这个问题一看上去很诡异,但是仔细地看报出的错误,原来是我的环境里面某些字段不能为null,但是sql语句里面却没有为这些字段提供默认值。 最后从网上找到了这个问题的解决办法,原来是和mysql的sql_mode有关。 查看当前数据库使用的sql_mode 上面查看的是全局情况下的sql_mode,也可以查看其它环境下的,如下面所示: 查询session变量 mysql> select @@session.sql_mode; 查询用户变量 mysql> select @sql_mode; 查询全局变量 mysql> select @@sql_mode; sql_mode有很多取值,具体可以看官方文档 sql_mode的STRICT_TRANS_TABLES是严格模式,进行数据的严格校验,错误数据不能插入,报error错误。 要解决文本开头的问题,可以去掉STRICT_…

mysql 用户名长度限制导致php连接不上

mysql用户名长度的限制 最近遇到了一个小问题,但是耗费了很长时间来定位问题。 原因是,连接mysql的时候,一直报错说连接不上,具体是说Access denied for user 'xxxx_xxxx_xxxx@192.168.1.10' (using password:YES)。刚开始我以为是使用的第三方库的问题,排查后发现不是。后来我以为是我所在的网段或者我的机器出问题了,这也不是。 最后,发现这个报错信息里面的username不对,是被截断了的。上网一搜,是mysql的用户名太长了,导致连接不上。 在mysql里面,它是这样规定的: MySQL user names can be up to 32 characters long Operating system user names may be of a…