通过php主键将大量Excel信息上传到MySQL

时间:2018-07-05 17:23:02

标签: php mysql primary-key

我遇到了这个问题,我想出了一种方法来上传.xls格式的数据并在mysql上输入正确的信息。我正在使用phpmyadmin和php上传文件,但是现在我在主键上遇到了麻烦...对不起,我是一个新的编程槽php,而且我不知道为什么,一旦我定义了主键并脚本向数据发送主键不会尊重的数据,并且不将相同的id(primarykey)分配给相同的值,例如:

enter image description here

我输入数据的代码如下:

<?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;

0 个答案:

没有答案