pdo插入性能缓慢

时间:2015-07-16 21:46:58

标签: php mysql pdo

我遇到了一个问题,我创建的方法是在数据库的三个不同的表中插入数据,它太慢了,并且不在循环中我需要帮助来检测问题是什么...这是我的代码

public function procesaOrdenRun () {
     #trae variables de config
    $data      = new Config();
    $base_path = $data->url();
    $base_path = str_replace("/classes","",$base_path);

    $fecha_creado    = date("Y-m-d");
    $fecha_entrega   = date('Y-m-d', strtotime($fecha_creado. ' + 7 days'));

    $id_paciente     = $_POST["id_preregistro"];
    $estado          = "6";
    $asignado        = $_POST["dr_remitente"];
    $precio          = $_POST["precio_plantilla"];

    $tipo_plantilla  = $_POST["tipo_plantilla"];
    $tipo_pie        = $_POST["tipoPie"];
    $observaciones   = $_POST["observaciones"];

    $id_usuario   = $_POST["id_usuario"];

    $id_plantilla   = $_POST["id_plantilla"];

    $consecutivo = $_POST["consecutivo"];

    //$archivo_fresado = $_POST["fresado"];
    //$archivo_presion = $_POST["presion"];

    //die(var_dump($_FILES["fresado"]["name"]));

    $archivo_fresado = "../files/".$_FILES["fresado"]["name"];
    $archivo_presion = "../files/".$_FILES["presion"]["name"];

    $target_dir = "../files/";
    $target_file1 = $target_dir . basename($_FILES["fresado"]["name"]);
    $target_file2 = $target_dir . basename($_FILES["presion"]["name"]);


    if (!empty($_FILES["fresado"]["name"])){

        if (move_uploaded_file($_FILES["fresado"]["tmp_name"], $target_file1)) {
            //echo "El archivo ". basename($_FILES["fresado"]["name"]). " se ha subido correctamente.";
        } else {
            echo "Error al subir el archivo ".$target_file1;
        }

    }

    if (!empty($_FILES["presion"]["name"])){

        if (move_uploaded_file($_FILES["presion"]["tmp_name"], $target_file2)) {
            //echo "El archivo ". basename($_FILES["presion"]["name"]). " se ha subido correctamente.";
        } else {
            echo "Error al subir el archivo ".$target_file2;
        }

    }

    //die(var_dump($archivo_fresado));

    $facturado       = 0;

    $db   = new database();
    $conn = $db->conn();

    try {

        $query = $conn->prepare('INSERT INTO ortomec_orden_pedido (
                            id_paciente,
                            fecha_entrega,
                            estado,
                            asignado,
                            precio,  
                            tipo_plantilla,
                            tipo_pie,
                            archivo_fresado,
                            archivo_presion,
                            observacion,
                            id_usuario,
                            fecha_creado,
                            facturado,
                            id_plantilla,
                            consecutivo
                            )
                            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

        $query->bindParam(1, $id_paciente);
        $query->bindParam(2, $fecha_entrega);
        $query->bindParam(3, $estado);
        $query->bindParam(4, $asignado);  
        $query->bindParam(5, $precio);
        $query->bindParam(6, $tipo_plantilla);
        $query->bindParam(7, $tipo_pie);
        $query->bindParam(8, $archivo_fresado);
        $query->bindParam(9, $archivo_presion);
        $query->bindParam(10, $observaciones);
        $query->bindParam(11, $id_usuario);
        $query->bindParam(12, $fecha_creado);
        $query->bindParam(13, $facturado);
        $query->bindParam(14, $id_plantilla);
        $query->bindParam(15, $consecutivo);

        $query->execute();
        //return true;

        //self::updateOrder(); //se agrego para que actualice el orden de las ordenes de pedido y asi funcionen las flechas con las que se "ordenan"

        $this->updateOrder(); //se agrego para que actualice el orden de las ordenes de pedido y asi funcionen las flechas con las que se "ordenan"

        } catch( PDOException $e ) {

        echo 'Caught exception: ', $e->getMessage(), "\n";

        return false;

        }    


    $idOrden = $conn->lastInsertId('id_orden_pedido');

    /*$sql = "select max(id_orden_pedido) from ortomec_orden_pedido";
    $query = $conn->prepare( $sql );
    $query->execute();
    $results = $query->fetchAll();

    $idOrden = $results[0]["max(id_orden_pedido)"];*/





    /* Actualiza aqui */

    $bmi1               = $_POST["bm1Izq"];
    $bmi2               = $_POST["bm2Izq"];
    $bmi3               = $_POST["bm3Izq"];
    $bmi4               = $_POST["bm4Izq"];
    $bmi5               = $_POST["bm5Izq"];
    $bmd1               = $_POST["bm6Izq"];
    $bmd2               = $_POST["bm7Izq"];
    $bmd3               = $_POST["bm8Izq"];
    $bmd4               = $_POST["bm9Izq"];
    $bmd5               = $_POST["bm10Izq"];

    $derechaIzquierda = $_POST["clickEleve"];

    $selectCmp          = $_POST["selectCmp"];

    $botonMetatarsianoIzq = $_POST["botonMetatarsiano"];
    $botonMetatarsianoDer = $_POST["botonMetatarsiano2"];

    $elevacionDer       = $_POST["elevacionDer"];
    $elevacionIzq       = $_POST["elevacionIzq"];

    $almohadillaEscaDer = $_POST["almohadillaEscaDer"];
    $almoadillaEscaIzq  = $_POST["almoadillaEscaIzq"];
    $cuniaExternaDer    = $_POST["cuniaExternaDer"];
    $cuniaExternaIzq    = $_POST["cuniaExternaIzq"];
    $cuniaInternaDer    = $_POST["cuniaInternaDer"];
    $cuniaInternaIzq    = $_POST["cuniaInternaIzq"];


    try {

        $query = $conn->prepare('INSERT INTO ortomec_orden_correctores (
                                idOrden,
                                bmi1,
                                bmi2,
                                bmi3,
                                bmi4,  
                                bmi5,
                                bmd1,
                                bmd2,
                                bmd3,
                                bmd4,
                                bmd5,
                                selectCmp,
                                botonMetatarsianoIzq,
                                botonMetatarsianoDer,
                                derechaIzquierda,
                                elevacionDer,
                                elevacionIzq,
                                almohadillaEscaDer,
                                almoadillaEscaIzq,
                                cuniaExternaDer,
                                cuniaExternaIzq,
                                cuniaInternaDer,
                                cuniaInternaIzq                                
                            )
                            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

        $query->bindParam(1, $idOrden);
        $query->bindParam(2, $bmi1);
        $query->bindParam(3, $bmi2);
        $query->bindParam(4, $bmi3);  
        $query->bindParam(5, $bmi4);
        $query->bindParam(6, $bmi5);
        $query->bindParam(7, $bmd1);
        $query->bindParam(8, $bmd2);
        $query->bindParam(9, $bmd3);
        $query->bindParam(10, $bmd4);
        $query->bindParam(11, $bmd5);
        $query->bindParam(12, $selectCmp);
        $query->bindParam(13, $botonMetatarsianoIzq);
        $query->bindParam(14, $botonMetatarsianoDer);
        $query->bindParam(15, $derechaIzquierda);
        $query->bindParam(16, $elevacionDer);
        $query->bindParam(17, $elevacionIzq);
        $query->bindParam(18, $almohadillaEscaDer);
        $query->bindParam(19, $almoadillaEscaIzq);
        $query->bindParam(20, $cuniaExternaDer);
        $query->bindParam(21, $cuniaExternaIzq);
        $query->bindParam(22, $cuniaInternaDer);
        $query->bindParam(23, $cuniaInternaIzq);

        $query->execute();

        /*var_dump($query);

        die(var_dump("idOrden ".$idOrden,"bmi1 ".$bmi1,"bmi2 ".$bmi2,"bmi3 ".$bmi3,"bmi4 ".$bmi4,"bmi5 ".$bmi5,"bmd1 ".$bmd1,"bm2 ".$bmd2,"bmd3 ".$bmd3,"bmd4 ".$bmd4,"bmd5 ".$bmd5,"selectCmp ".$selectCmp,"botonMetatarsianoIzq ".$botonMetatarsianoIzq,
        "botonMetatarsianoDer ".$botonMetatarsianoDer,"elevacionDer ".$elevacionDer,"elevacionIzq ".$elevacionIzq,"almohadillaEscaDer ".$almohadillaEscaDer,"almoadillaEscaIzq ".$almoadillaEscaIzq,"cuniaExternaDer ".$cuniaExternaDer,
        "cuniaExternaIzq ".$cuniaExternaIzq,"cuniaInternaDer ".$cuniaInternaDer,"cuniaInternaIzq ".$cuniaInternaIzq));*/

        //return true;

        } catch( PDOException $e ) {

        echo 'Caught exception: ', $e->getMessage(), "\n";

        return false;

        }    



    try {

        $completoAlta = $_POST["completoAlta"];
        $superiorMedia = $_POST["superiorMedia"];
        $superiorBaja = $_POST["superiorBaja"];
        $descargaTalonBaja = $_POST["descargaTalonBaja"];
        $descargaTalonAlta = $_POST["descargaTalonAlta"];
        $diagonalBaja = $_POST["diagonalBaja"];
        $diagonalMediaSuperior = $_POST["diagonalMediaSuperior"];

        $id_orden_uso = $_POST["id_orden_uso"];
        $detalleUso = $_POST["detalleUso"];
        $longitud_plantilla = $_POST["longitud_plantilla"];
        $tipoCalzado = $_POST["tipoCalzado"];

        $completoPosicion = $_POST['completo'];



        $superiorArriba = $_POST['superiorMediaRa'];
        $superiorAbajo = $_POST['inferiorAltaRa'];

        $descargaAbajo = $_POST['descargaTalonAltaRa'];

        $superiorInferiorAlta = $_POST['diagonalMediaSuperiorRa'];
        $superiorInferiorBaja = $_POST['diagonalAltaRa'];

        //die(var_dump($superiorInferiorAlta, $superiorInferiorBaja));

        //die(var_dump($diagonalMediaSuperior, $diagonalMediaInferior, $));


        $query = $conn->prepare('INSERT INTO ortomec_orden_disenio_durezas (
                                idOrden,
                                completoPosicion,
                                completoAlta,
                                completoMedia,
                                superiorArriba,
                                superiorAbajo,
                                superiorMedia,
                                superiorBaja,  
                                inferiorMedia,
                                inferiorAlta,
                                descargaAbajo,
                                descargaTalonBaja,
                                descargaTalonAlta,
                                descargaTalonMedia,
                                superiorInferiorAlta,
                                superiorInferiorBaja,
                                diagonalBaja,
                                diagonalMediaSuperior,
                                diagonalMediaInferior,
                                diagonalAlta,        
                                uso,
                                detalleUso,
                                longitud,
                                tipoDeCalzado
                            )
                            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

        $query->bindParam(1, $idOrden);
        $query->bindParam(2, $completoPosicion);
        $query->bindParam(3, $completoAlta);
        $query->bindParam(4, $completoMedia);
        $query->bindParam(5, $superiorArriba);
        $query->bindParam(6, $superiorAbajo);
        $query->bindParam(7, $superiorMedia);  
        $query->bindParam(8, $superiorBaja);
        $query->bindParam(9, $inferiorMedia);
        $query->bindParam(10, $inferiorAlta);
        $query->bindParam(11, $descargaAbajo);
        $query->bindParam(12, $descargaTalonBaja);
        $query->bindParam(13, $descargaTalonAlta);
        $query->bindParam(14, $descargaTalonMedia);
        $query->bindParam(15, $superiorInferiorAlta);
        $query->bindParam(16, $superiorInferiorBaja);
        $query->bindParam(17, $diagonalBaja);
        $query->bindParam(18, $diagonalMediaSuperior);
        $query->bindParam(19, $diagonalMediaInferior);
        $query->bindParam(20, $diagonalAlta);
        $query->bindParam(21, $id_orden_uso);
        $query->bindParam(22, $detalleUso);
        $query->bindParam(23, $longitud_plantilla);
        $query->bindParam(24, $tipoCalzado);

        //die(var_dump($query));

        $query->execute();
        //return true;

        } catch( PDOException $e ) {

        echo 'Caught exception: ', $e->getMessage(), "\n";

        return false;

        }    


}

这里我附上了所有表格的创建脚本:

    delimiter $$

CREATE TABLE `orden_pedido` (
  `id_orden_pedido` int(12) NOT NULL AUTO_INCREMENT,
  `id_paciente` int(2) NOT NULL,
  `fecha_entrega` date NOT NULL,
  `estado` varchar(12) NOT NULL,
  `asignado` int(2) NOT NULL,
  `precio` double(16,2) DEFAULT NULL,
  `tipo_plantilla` int(2) DEFAULT NULL,
  `tipo_pie` int(11) DEFAULT NULL,
  `archivo_fresado` varchar(64) DEFAULT NULL,
  `archivo_presion` varchar(64) DEFAULT NULL,
  `id_usuario` int(12) DEFAULT NULL,
  `observacion` varchar(512) DEFAULT NULL,
  `fecha_creado` date NOT NULL,
  `hora_creado` time NOT NULL,
  `facturado` tinyint(1) NOT NULL DEFAULT '0',
  `fecha_abierta` date DEFAULT NULL,
  `fecha_diseno` date DEFAULT NULL,
  `fecha_produccion` date DEFAULT NULL,
  `id_plantilla` int(12) DEFAULT NULL,
  `orden` int(12) NOT NULL,
  `fecha_modificacion` date DEFAULT NULL,
  `adicional` int(11) DEFAULT '0',
  `consecutivo` int(11) DEFAULT NULL,
  PRIMARY KEY (`id_orden_pedido`)
) ENGINE=InnoDB AUTO_INCREMENT=388 DEFAULT CHARSET=utf8$$


delimiter $$

CREATE TABLE `orden_correctores` (
  `idCorrector` int(12) NOT NULL AUTO_INCREMENT,
  `idOrden` int(12) NOT NULL,
  `bmi1` int(2) DEFAULT '0',
  `bmi2` int(2) DEFAULT '0',
  `bmi3` int(2) DEFAULT '0',
  `bmi4` int(2) DEFAULT '0',
  `bmi5` int(2) DEFAULT '0',
  `bmd1` int(2) DEFAULT '0',
  `bmd2` int(2) DEFAULT '0',
  `bmd3` int(2) DEFAULT '0',
  `bmd4` int(2) DEFAULT '0',
  `bmd5` int(2) DEFAULT '0',
  `selectCmp` varchar(255) DEFAULT '0',
  `botonMetatarsianoIzq` int(2) DEFAULT '0',
  `botonMetatarsianoDer` int(2) DEFAULT '0',
  `derechaIzquierda` varchar(255) DEFAULT '0',
  `elevacionDer` varchar(255) DEFAULT '0',
  `elevacionIzq` varchar(255) DEFAULT '0',
  `almohadillaEscaDer` varchar(255) DEFAULT '0',
  `almoadillaEscaIzq` varchar(255) DEFAULT '0',
  `cuniaExternaDer` int(2) DEFAULT '0',
  `cuniaExternaIzq` int(2) DEFAULT '0',
  `cuniaInternaDer` int(2) DEFAULT '0',
  `cuniaInternaIzq` int(2) DEFAULT '0',
  PRIMARY KEY (`idCorrector`)
) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8$$

delimiter $$

CREATE TABLE `orden_disenio_durezas` (
  `idDisenioDurezas` int(12) NOT NULL AUTO_INCREMENT,
  `idOrden` int(12) NOT NULL,
  `completoPosicion` varchar(255) DEFAULT NULL,
  `completoAlta` varchar(255) DEFAULT NULL,
  `completoMedia` varchar(255) DEFAULT NULL,
  `superiorArriba` varchar(255) DEFAULT NULL,
  `superiorAbajo` varchar(255) DEFAULT NULL,
  `superiorMedia` varchar(255) DEFAULT NULL,
  `superiorBaja` varchar(255) DEFAULT NULL,
  `inferiorMedia` varchar(255) DEFAULT NULL,
  `inferiorAlta` varchar(255) DEFAULT NULL,
  `descargaAbajo` varchar(255) DEFAULT NULL,
  `descargaTalonBaja` varchar(255) DEFAULT NULL,
  `descargaTalonAlta` varchar(255) DEFAULT NULL,
  `descargaTalonMedia` varchar(255) DEFAULT NULL,
  `superiorInferiorAlta` varchar(255) DEFAULT NULL,
  `superiorInferiorBaja` varchar(255) DEFAULT NULL,
  `diagonalBaja` varchar(255) DEFAULT NULL,
  `diagonalMediaSuperior` varchar(255) DEFAULT NULL,
  `diagonalMediaInferior` varchar(255) DEFAULT NULL,
  `diagonalAlta` varchar(255) DEFAULT NULL,
  `uso` varchar(255) DEFAULT NULL,
  `detalleUso` varchar(255) DEFAULT NULL,
  `longitud` varchar(255) DEFAULT NULL,
  `tipoDeCalzado` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`idDisenioDurezas`)
) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8$$

enter image description here

enter image description here

enter image description here

0 个答案:

没有答案