PHP - Convertir de mysql a mysqli o PDO

 
Vista:

Convertir de mysql a mysqli o PDO

Publicado por Erick (1 intervención) el 16/09/2017 00:37:42
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
<?php
$cedula=$_POST["cedula"];
$nombre=$_POST["nombre"];
$apellido=$_POST["apellido"];
$telefono=$_POST["tel"];
$sexo=$_POST["sexo"];
$dir=$_POST["dir"];
$email=$_POST["correo"];
$estado=$_POST["estado"];
$user=$_POST["usuario"];
$password=$_POST["pass"];
$password2=$_POST["pass2"];
if ($password2 == $password){
	echo"<div align='center'><h1><strong>CONTRASENA VALIDA</strong></h1></div>";
	}
	else{
	echo"<h1>ERROR CONTRASENA NO COINCIDE</h1>";}
$conexion=mysql_connect("localhost","root","");
mysql_select_db("empresa1",$conexion);
$instruccion="INSERT INTO usuarios (cedula, nombre, apellido, telefono, sexo, dir, email, estado, user, pass ) VALUES ('$cedula', '$nombre', '$apellido', '$telefono', '$sexo', '$dir', '$email', '$estado', '$user', '$password')";
$consulta2=mysql_query($instruccion,$conexion)or die("ERROR CREANDO USUARIO");
$consulta=mysql_query("SELECT * FROM usuarios WHERE user='$user' and pass='$password'",$conexion)or die(mysql_error()."ERROR CONSULTANDO USUARIO");
$totalregistro=mysql_num_rows($consulta);
if ($totalregistro > 0){
	$row_table=mysql_fetch_array($consulta);
	echo "<div align='center'><strong><H1> BIENVENIDO</H1> </strong></div>";
	echo "<br><br><br>";
 
	echo"<div align='center'><TABLE BORDER='3' ALIGN='CENTER' WIDTH='400' height='500'>";
	echo"<TR><TH COLSPAN='2'><h1>CONSULTA DE USUARIOS</h1></TH></TR>";
	echo"<TR><TD><strong>CEDULA:</strong></TD><TD><h3>";
		echo $row_table['cedula'];
	echo"</h3></td></TR><br>";
	echo"<TR><TD><strong>NOMBRE:</strong></td><td><h3>";
		echo $row_table['nombre'];
	echo"</h3></td></TR><br>";
	echo"<TR><TD><strong>APELLIDO:</strong></td><td><h3>";
		echo $row_table['apellido'];
	echo"</h3></td><TR><br>";
	echo"<TR><TD><strong>TELEFONO:</strong></td><td><h3>";
		echo $row_table['telefono'];
	echo"</h3></td></tr><br>";
	echo"<TR><TD><strong>SEXO:</strong></td><td><h3>";
		echo $row_table['sexo'];
	echo"</h3></td></tr></br>";
	echo"<TR><TD><strong>DIRECCION:</strong></td><td><h3>";
		echo $row_table['dir'];
	echo"</h3></td></tr><br>";
	echo"<TR><TD><strong>E-MAIL:</strong></td><td><h3>";
		echo $row_table['email'];
	echo"</h3></td></tr><br>";
	echo"<TR><TD><strong>ESTADO CIVIL:</strong></td><td><h3>";
		echo $row_table['estado'];
	echo"</h3></td></tr><br>";
	echo"<TR><TD><strong>USUARIO:</strong></td><td><h3>";
		echo $row_table['user'];
	echo"</h3></td></tr><br>";
}
else {
	echo"USUARIO NO REGISTRADO";}
	echo"</div>";
 
?>


Por favor necesito este código, pero solo funciona en versiones viejas en PHP , agradecería la ayuda de alguien para migrarlo a la nueva versión. GRACIAS
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Convertir de mysql a mysqli o PDO

Publicado por xve (6935 intervenciones) el 16/09/2017 08:38:02
Hola Erick, lo tienes sencillo, y como dices en el titulo, simplemente cambiando de mysql a mysqli te funcionara!!!

Cualquier instrucción de las que tienes de mysql_...., encontraras lo mismo con mysqli_... en la documentación de PHP veras como utilizarlo, aunque es casi lo mismo.
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

Convertir de mysql a mysqli o PDO

Publicado por Gonzalo (615 intervenciones) el 17/09/2017 04:22:07
Buenos dias don Erik

aqui depende de que este usando php7 o una version anterior.

no recuerdo a partir de que version de php se hace el cambio a PDO, pero lo que si es seguro es que la debe usar si usa php7.

tampoco se si quitaron mysqli en la version de php7, pero haga el intento, ojala siga disponible mysqli porque es una shulada.

es un verdadero lio configurarlo para MsSql, pero con MySql debe ser mas facil.

le recomiendo que use POO, es mas facil.

aqui le dejo el link para que se documente.

http://php.net/manual/es/pdo.connections.php

El lunes le puedo agregar la clase en POO para usar PDO.
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

Convertir de mysql a mysqli o PDO

Publicado por Gonzalo (615 intervenciones) el 17/09/2017 04:28:35
por cierto, se ve que usted confia en sus usuarios!!!

yo le recomendaria que validara los datos ANTES de pensar en pasarlos a la base de datos, si como los veo van directos, que pasa si hacen un inyection y le borran la tabla o la base de datos??

salu2.

En programacion: Lo que se debe dar por hecho ... es que no hay que dar nada por hecho.
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
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Convertir de mysql a mysqli o PDO

Publicado por Gonzalo (615 intervenciones) el 18/09/2017 02:22:49
buenas noticias don Erick.

Php7 soporta MySqli.

aqui le dejo la clase y un ejemplo de como usarla

archivo: ClassMySql.php

usen un include y listo, cualquier correccion que le hagan a la clase se aplica de inmediato en cualquier pagina que use esta clase.

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
class ClassMySql
{
  private $MySql;
  private $ResultSet;
  private $Row;
  private $Rows;
  private $Eof;
 
	function __construct()
	{
		$this->MySql = new mysqli("localhost","usuario","password","BaseDeDatos");
		if($this->MySql->connect_errno)
		{
			die($this->MySql->connect_errno.". ".$this->MySql->connect_error);
		}
	}
 
	function __destruct()
	{
	  mysqli_close($this->MySql);
	}
 
	function Select($SqlCommand,$Modo)
	{
	  $this->Rows=0;
 
	  if($Modo)
	  {
	    $this->ResultSet=$this->MySql->query($SqlCommand);
	    $this->Row=$this->ResultSet->fetch_assoc();
 
	    $this->Rows=$this->ResultSet->num_rows;
	    $this->Eof=($this->Rows==0);
	  }else
	  {
	    die($SqlCommand);
	  }
	}
 
	function Insert($SqlCommand,$Modo)
	{
		if($Modo)
		{
			if(!$this->MySql->query($SqlCommand))
			{
				die($this->MySql->error);
			}
		}else
		{
			die($SqlCommand);
		}
	}
 
	function Eof()
	{
	  return $this->Eof;
	}
 
	function GetField($Campo)
	{
	  if(!$this->Eof)
	  {
	    return $this->Row[$Campo];
	  }
	}
 
	function FetchArray()
	{
		if(!$this->Eof)
		{
			$this->Row=$this->ResultSet->fetch_assoc();
			$this->Rows--;
			$this->Eof=($this->Rows==0);
		}
	}
 
	function Update($SqlCommand,$Modo)
	{
		if($Modo)
		{
			if(!$this->MySql->query($SqlCommand))
			{
				die($this->MySql->error);
			}
		}else
		{
			die($SqlCommand);
		}
	}
}

// le puedes hacer mejoras si asi lo necesitas, con pequeñas modificaciones puedes usar MsSql, oracle, mariadb, access, fox, etc.

bien, el ejemplo:

creas el objeto, en este caso es un objeto para leer una tabla llamada Empleados, yo le pongo al objeto el nombre de la tabla para acordarme con cual tabla esta conectado, asi pues $Ventas esta con Ventas, $Clientes con clientes, capichi?????

$SqlCommand="Select * from Empleados";

$Empleados=new ClassMySql(); // se crea el objeto, se dispara el constructor, se hace la conexion a la base de datos y listo.
$Empleados->Select($SqlCommand,true); // se pasa el query al objeto

Aqui la unica explicacion que se necesita es: si en el ->Select usas false entonces muestra el query como lo recibio y se detiene, asi tienes manera de verificar si el query se mando correctamente, is usas true entonces ejecuta el query, o sea, si no es gato es gata.

1
2
3
4
5
6
7
8
9
if(!$Empleados->Eof()) // se explica por si sola
{
  while(!$Empleados->Eof())// esta tambien
{
 
echo($Empleados->GetField("nombre)); // se explica por si sola
  $Empleados->FetchArray(); // se pasa al siguiente registro;
}
}

precaucion: no uses $Empleados para hacer un update, insert o delete, aqui debes usar un objeto diferente.

para los que buscaron el eof en MySqli y como yo .. nunca lo encontramos, aqui esta la explicacion

al ejecutar el select te regresa el numero total de registros encontrados, si es mayor a cero entonces Eof =false, el total lo paso a una variable y con cada fetcharray le resto 1 a esa variable.

si la variable llega a cero ... entonces cambia el eof a true y listo, ahi esta el eof.

fin del script, se ejecuta el destructor y se cierra la base de datos.

es igual para un insert

$EmpleadosInsert->Insert($SqlCommand,true);

es igual para un delete

$EmpleadosDelete->Delete($SqlCommand,true);

igual para un update

$EpleadosUpdate->Update($SqlCommand,true);

esta clase la tengo funcionando el en trabajo asi que esta 100% probada de que funciona.

se preguntaran:

y porque diantres no uso un

$Empleados->Execute($SqlCommand,true);

y asi se quita del problema de tener una funcion para el insert y otra para el delete y otra para el Update???

respuesta: ... buena pregunta.

Todos los caminos llevan a roma!, ... ok ... y si no quiero ir?
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