PHP - Migrar MYSQL A MYSQLI PHP 7.0

 
Vista:

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por MDavidGutierrez (5 intervenciones) el 03/10/2018 02:58:03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
function escribearchivo($serie, $numero, $pagos) {
	$linea = NULL;
	$conn = new mysqli(BD_HOST, BD_USERNAME, BD_PASSWORD, BD_DATABASE1);
    $ssql = 'SELECT * FROM F_CFG';
    $rs = $conn->query($ssql);
    $datos = $rs->fetch_array(MYSQLI_BOTH);
    $numerof = $numero;
    $conn = new mysqli(BD_HOST, BD_USERNAME, BD_PASSWORD, BD_DATABASE1);
	$ssql = "SELECT * FROM F_PCL WHERE TIPPCL='$serie' AND CODPCL=$numero";
	$rs2 = $conn->query($ssql);
    $ssql = "SELECT * FROM F_LPC WHERE TIPLPC='$serie' AND CODLPC=$numero";
	$rs3 = $conn->query($ssql);
    $numerof = str_pad($numero, 6, '0', STR_PAD_LEFT);
	$codigo = 'pedidofactusolweb' . $serie . $numerof;
	if(file_exists('BBDD/' . $datos['CPVCFG'] . $codigo . '.txt')) {
		return 'Este pedido ya se finalizó anteriormente.';
	}else{
		if(is_writable('BBDD/' . $datos['CPVCFG'])) {
			$fp = fopen('BBDD/' . $datos['CPVCFG'] . $codigo . '.txt', 'w');
            $datos2 = $rs2->fetch_array(MYSQLI_BOTH);
 
//desde aqui empieza el problema. como declarar en php 7.0 estas consultas
 
 //for ($i=0; $i<mysql_num_fields($rs2); $i++) { es es la expresion como se definia en php obsoleto
 
                //$linea .= mysql_field_name($rs2, $i) . ':' . $datos2[mysql_field_name($rs2, $i)] . "\n";
 
 
            }
 
			while($datos3 = $rs3->fetch_array(MSQLI_BOTH)) {
// aqui se repite mi desafio como declarar en php 7.0 esta consulta en mysqli
                //for($i=0; $i<mysql_num_fields($rs3); $i++) {
 
                    //$linea .= mysql_field_name($rs3, $i) . ':' . $datos3[mysql_field_name($rs3, $i)] . "\n";
 
				}
        $artlpc = strval($datos3['ARTLPC']);
        $mqfart = $conn->query('SELECT USTART, CSTART FROM F_ART WHERE CODART=\'' . $artlpc . "'");
		$mfaart = $mqfart->fetch_array(MYSQLI_BOTH);		
                if($mfaart['CSTART'] == 3) {
	        $cantidad = $mfaart['USTART'] - $datos3['CANLPC'];
    		$conn->query('UPDATE F_ART SET USTART=$cantidad WHERE CODART=\'' . $artlpc . "'");
            }
			}
			$linea .= 'DOCPAGO:' . encriptar($pagos) . "\n";
			$linea .= 'STATUS:OK';
			$err = fwrite($fp, $linea);
			fclose($fp);
			if ($err != -1) {
				chmod('BBDD/' . $datos['CPVCFG'] . $codigo . '.txt', 0666);
				return '';
			}else{
				return 'No dispone de permisos para generar el pedido.';
			}
		}else{
			return 'No se puede generar pedidos.';
		}
	}
}
 
$conn = new mysqli(BD_HOST, BD_USERNAME, BD_PASSWORD, BD_DATABASE1);
//Escribo los datos de la forma de pago
$pagos = '';
if(isset($_POST['banco']) or isset($_POST['tipo'])) {
	if(isset($_POST['banco'])) {
		$pagos = $_POST['banco'] . $_POST['sucursal'] . $_POST['dc'] . $_POST['cuenta'];
	}else{
		$pagos = $_POST['tipo'] . '-' . $_POST['numtarjeta'] . '-' . $_POST['codseg'] . ' Cad:' . $_POST['mes'] . '/' . $_POST['anio'];
	}
}
//escribo los datos que faltan en el pedido
if($_SESSION['tipo_usuario'] != 'agente') {
	if($_POST['entrega'] != '') {
		$ssql = 'UPDATE F_PCL SET FECPCL=\'' . date("Y-m-d H:i:s") . '\', DIRPCL=' . $_POST['entrega'] . ', REFPCL=\'' . $_POST['referencia'] . '\', OB1PCL=\'' . $_POST['observaciones'] . '\', PPOPCL=\'' . $_POST['pedidopor'] . '\' WHERE TIPPCL=\'' . $_POST['serie'] . '\' AND CODPCL=' . $_POST['numero'];
	}else{
		$ssql = 'UPDATE F_PCL SET FECPCL=\'' . date("Y-m-d H:i:s") . '\', REFPCL=\'' . $_POST['referencia'] . '\', OB1PCL=\'' . $_POST['observaciones'] . '\', PPOPCL=\'' . $_POST['pedidopor'] . '\' WHERE TIPPCL=\'' . $_POST['serie'] . '\' AND CODPCL=' . $_POST['numero'];
	}
}else{
	if($_POST['entrega'] != '') {
		$ssql = 'UPDATE F_PCL SET FECPCL=\'' . date("Y-m-d H:i:s") . '\', DIRPCL=' . $_POST['entrega'] . ', REFPCL=\'' . $_POST['referencia'] . '\', ALMPCL=\'' . $_POST['almacen'] . '\', OB1PCL=\'' . $_POST['observaciones'] . '\', PPOPCL=\'' . $_POST['pedidopor'] . '\' WHERE TIPPCL=\'' . $_POST['serie'] . '\' AND CODPCL=' . $_POST['numero'];
	}else{
		$ssql = 'UPDATE F_PCL SET FECPCL=\'' . date("Y-m-d H:i:s") . '\', REFPCL=\'' . $_POST['referencia'] . '\', ALMPCL=\'' . $_POST['almacen'] . '\', OB1PCL=\'' . $_POST['observaciones'] . '\', PPOPCL=\'' . $_POST['pedidopor'] . '\' WHERE TIPPCL=\'' . $_POST['serie'] . '\' AND CODPCL=' . $_POST['numero'];
	}
}
$rs = $conn->query($ssql);
$ssql = "SELECT * FROM F_PCL WHERE TIPPCL='" . $_POST['serie'] . "' AND CODPCL=" . $_POST['numero'];
$rs = $conn->query($ssql);
$prueba = $rs->fetch_array(MYSQLI_BOTH);
//escribo el archivo y si todo está correcto le cambio el estado a enviado.
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por Gonzalo (615 intervenciones) el 03/10/2018 14:59:29
Buenas noches don David

me parece que el problema esta en la linea 39

$mqfart = $conn->query('SELECT USTART, CSTART FROM F_ART WHERE CODART=\ ' ' . $artlpc . " ' " );

inicia con comillas sencillas y termina con comillas dobles.

revise las comillas cencillas y dobles, deben estar balanceadas.

$mqfart = $conn->query('SELECT USTART, CSTART FROM F_ART WHERE CODART= " ' . $artlpc .' " ' );

otro punto es, si la cadena de texto esta entre comillas sencillas no es necesario usar \" para poner comillas dobles dentro de las comillas sencillas.

reviselo y nos comenta.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por david (5 intervenciones) el 04/10/2018 03:06:52
gracias amigo estuve observando la sugerencia sin embargo la sintaxis esta expresada de esa manera debido a que se refiere a un objeto ya definido dentro de una variable previa a una consulta aun así hice la prueba pero el error persiste, aunque ya creo que encontré la manera de resolverlo voy a probarlo mas tarde. este es un proyecto en el que estoy trabajando de manera personal pero tengo varios detalles que me faltan resolver porque me quede en php 4 y en php 7 cambiaron muchas cosas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por Gonzalo (615 intervenciones) el 04/10/2018 03:15:23
buenos dias don David.

la verdad ni me fije en la sintaxis, solo vi que las comillas sencillas y dobles estaban mal especificamente en esa linea, de ahi se provocan los demas errores, si arregla esa linea es posible que se arreglen los demas errores.

y le recomiendo de una vez que use PDO, es lo mas nuevo.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por david (5 intervenciones) el 04/10/2018 04:47:04
gracias tienes conocimiento de la expresion ereg en php 7
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por Gonzalo (615 intervenciones) el 04/10/2018 05:34:06
Buenos dias don David.

según php.net, es una comparación de una expresión regular que fue eliminada en la versión 7 :(

http://php.net/manual/es/function.ereg.php

alternativa: usa preg_match()

http://php.net/manual/es/function.preg-match.php

recomendación: crea tu propio pregmatch, porque esta de locos entenderle, dicho de otro modo, mis respetos a quien si le entendió al preg_match().

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por david (5 intervenciones) el 04/10/2018 05:57:23
pienso igual trabajas actualmente en algun proyecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por Gonzalo (615 intervenciones) el 04/10/2018 06:38:26
buenos dias don David.

en algunos, nada importante.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por david (5 intervenciones) el 04/10/2018 06:51:33
podriamos ponernos en contacto a traves de algun correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Migrar MYSQL A MYSQLI PHP 7.0

Publicado por Gonzalo (615 intervenciones) el 04/10/2018 07:00:52
Busqueme mañana en el chat de php o mandeme mensaje por LWP.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar