通过php主键上传海量excel信息到mysql

p4rjhz4m  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(185)

我有这个问题,我想办法上传我的数据是在.xls格式,并在mysql输入正确的信息。我用phpmyadmin和php上传文件,但现在我有问题与主键。。。抱歉,我是通过php编程的新手,我不知道为什么,一旦我定义了主键并且脚本发送了主键不尊重的数据,并且不将相同的id(primarykey)分配给相同的值,例如:

我输入数据的代码如下:

<?php 
require_once 'db_con.php';
if(isset($_POST["submit_file"]))
{ 
    $file = $_FILES["file"]["tmp_name"];
    $file_open = fopen($file,"r");
    while(($csv = fgetcsv($file_open, 1000, ",")) !== false) 
    {
         $fecha= $csv[0]; 
         $tipo = $csv[1]; 
         $impresion = $csv[2]; 
         $hojas= $csv[3]; 
         $cadena_nombre = explode('(', $csv[4]);
         $usuario =$cadena_nombre [0];
         $usuario =$csv[4];
         $stmt = $DBcon->prepare("INSERT INTO trabajo 
                                    (fecha,tipo,impresion,hojas,usuario) 
                            VALUES(:fecha,:tipo,:impresion,:hojas,:usuario)");

        $stmt->bindparam (':fecha', $fecha);
        $stmt->bindparam(':tipo', $tipo);
        $stmt->bindparam(':impresion', $impresion);
        $stmt->bindparam(':hojas', $hojas);
        $stmt->bindparam(':usuario', $usuario);

        $stmt->execute();
    }
}

echo "CSV Imported Successfully";
?>

我的ddl如下所示:

CREATE TABLE `trabajo` (
  `fecha` date NOT NULL,
  `hojas` int(25) NOT NULL,
  `impresion` int(25) NOT NULL,
  `tipo` varchar(60) NOT NULL,
  `usuario` varchar(60) NOT NULL,
  `usuario_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `trabajo`
  ADD PRIMARY KEY (`usuario_id`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `trabajo`
--
ALTER TABLE `trabajo`
  MODIFY `usuario_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12592;
COMMIT;

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题