PHP - Ayuda pasar mysql a mysqli

   
Vista:

Ayuda pasar mysql a mysqli

Publicado por Dio (15 intervenciones) el 26/11/2014 22:08:32
Estoy reciclando código y tengo varias cosas con mysql. Trato de pasarlo a mysqli pero me tira error por varios lados...

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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?php
class Conexion
{
	var $con;
	function Conexion()
 
	{
		// se definen los datos del servidor de base de datos 
		$conection['server']  = " ";
		$conection['user']     = " ";
		$conection['pass']    = " ";
		$conection['base']     =  " ";
 
		// crea la conexion
		$conect= mysqli_connect($conection['server'],$conection['user'],$conection['pass'], $conection['base']);
 
 
 
		if ($conect) // si la conexion fue exitosa , selecciona la base
		{
			mysqli_select_db($conect, $conection['base']);
			$this->con=$conect;
		}
	}
	function getConexion() // devuelve la conexion
	{
		return $this->con;
	}
	function Close()  // cierra la conexion
	{
		mysqli_close($this->con);
	}
 
}
 
class sQuery   // se declara una clase para poder ejecutar las consultas, esta clase llama a la clase anterior
{
 
	var $pconeccion;
	var $pconsulta;
	var $resultados;
	function sQuery()  // constructor, solo crea una conexion usando la clase "Conexion"
	{
		$this->pconeccion= new Conexion();
	}
	function executeQuery($consulta)  // metodo que ejecuta una consulta y la guarda en el atributo $pconsulta
	{
		$this->pconsulta= mysqli_query($consulta,$this->pconeccion->getConexion());
		return $this->pconsulta;
	}
	function getResults()   // retorna la consulta en forma de result.
	{return $this->pconsulta;}
 
	function Close()		// cierra la conexion
	{$this->pconeccion->Close();}
 
	function Clean() // libera la consulta
	{mysql_free_result($this->pconsulta);}
 
	function getResultados() // debuelve la cantidad de registros encontrados
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
 
	function getAffect() // devuelve las cantidad de filas afectadas
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
}
 
 
 
 
class Cliente
{
	var $nombre;     //se declaran los atributos de la clase, que son los atributos del cliente
	var $apellido;
	var $fecha;
	Var $id;
	function Cliente($nro=0) // declara el constructor, si trae el numero de cliente lo busca , si no, trae todos los clientes
	{
		if ($nro!=0)
		{
			$obj_cliente=new sQuery();
			$result =$obj_cliente->executeQuery("select * from clientes where id = $nro"); // ejecuta la consulta para traer al cliente 
			$row    =mysqli_fetch_array($result);
			$this->id=$row['id'];
			$this->nombre=$row['nombre'];
			$this->apellido=$row['apellido'];
			$this->fecha=$row['fecha_nac'];
		}
	}
	function getClientes() // este metodo podria no estar en esta clase, se incluye para simplificar el codigo, lo que hace es traer todos los clientes 
		{
			$obj_cliente=new sQuery();
			$result=$obj_cliente->executeQuery("select * from clientes"); // ejecuta la consulta para traer al cliente 
			return $result; // retorna todos los clientes
		}
 
	// metodos que devuelven valores
	function getID()
	 { return $this->id;}
	function getNombre()
	 { return $this->nombre;}
	function getApellido()
	 { return $this->apellido;}
	function getFecha()
	 { return $this->fecha;}
 
	// metodos que setean los valores
	function setNombre($val)
	 { $this->nombre=$val;}
	function setApellido($val)
	 {  $this->apellido=$val;}
	function setFecha($val)
	 {  $this->fecha=$val;}
 
	function updateCliente()	// actualiza el cliente cargado en los atributos
	{
			$obj_cliente=new sQuery();
			$query="update clientes set nombre='$this->nombre', apellido='$this->apellido',fecha_nac='$this->fecha' where id = $this->id";
			$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente 
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
 
	}
	function insertCliente()	// inserta el cliente cargado en los atributos
	{
			$obj_cliente=new sQuery();
			$query="insert into clientes( nombre, apellido, fecha_nac)values('$this->nombre', '$this->apellido','$this->fecha')";
 
			$obj_cliente->executeQuery($query); // ejecuta la consulta para traer al cliente 
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
 
	}
	function deleteCliente($val)	// elimina el cliente
	{
			$obj_cliente=new sQuery();
			$query="delete from clientes where id=$val";
			$obj_cliente->executeQuery($query); // ejecuta la consulta para  borrar el cliente
			return $query .'<br/>Registros afectados: '.$obj_cliente->getAffect(); // retorna todos los registros afectados
 
	}
}
?>

si alguien me puede dar una mano se lo agradeceria!
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

Ayuda pasar mysql a mysqli

Publicado por xve (5516 intervenciones) el 26/11/2014 22:19:51
Hola Dio, estaría bien que nos indicaras los errores y las lineas donde falla... a simple vista, sin saber muy bien que buscar, parece que esta todo bien.

Si nos puedes comentar...
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

Ayuda pasar mysql a mysqli

Publicado por Dio (15 intervenciones) el 26/11/2014 22:30:09
Si, perdon no me di cuenta...
Con el mysql anda perfecto sin problemas. Pero cuando empiezo a cambiarle por mysqli a los 9 que hay me tira estos errores (en la clase conexion no me tira errores, eso lo arregle):

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\abm\abm\abma\clase.php on line 51
seria esta linea
$this->pconsulta= mysqli_query($cons,$this->pconeccion->getConexion());

y Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\abm\abm\abma\index.php on line 102
por esta linea en el index
while ($row=mysqli_fetch_Array($clientes))

a medida de que arreglo algunos otros se rompen

edit

ya lo arreglé. Al final lo que pasaba es que mysqli_query() pide primero el link de la conexion y después la query, yo lo estaba pasando al revés y no me di cuenta.
$this->pconsulta= mysqli_query($this->pconeccion->getConexion(), $cons); asi me quedó
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
Imágen de perfil de xve

Ayuda pasar mysql a mysqli

Publicado por xve (5516 intervenciones) el 27/11/2014 07:52:53
Hola Dio, por defecto, la función mysqli_query() lleva primero el conector con la base de datos, y posteriormente la instrucción SQL...
http://php.net/manual/en/mysqli.query.php

Para tu caso, creo que tendría que ser así:
1
$this->pconsulta=mysqli_query($this->pconeccion->getConexion(), $cons);

Puedes probarlo y comentarnos?
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