23/10/2015, 17:13
|
| Colaborador | | Fecha de Ingreso: septiembre-2009 Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses Puntos: 214 | |
Respuesta: Cómo recuperar y enviar el objeto que trae la respuesta de MySQLi
Saludo
¡Ya po!
Pues revisando el tema del modo en que realizaste la consulta
con el bind_result definitivamente es un lío a la hora de
manejar la respuesta.
Pues se me ocurren estas opciones:
1. Realizar un explode. Código PHP: if ($valor[] = $FS->validarUsuario($username, $password) ) $valor = explode('|',$valor[0][0]);
Y de ahí en adelante, ya se maneja con las variables que ya están ($valor[0], etc...)
Esto, pensandolo a futuro para consultas que traigan varios registros
se podría manejar en un solo ciclo
Ej Código PHP: if ($valor[] = $FS->validarUsuario($username, $password) ) //vamos a suponer que vienen 2 valores for($i = 0; $i < sizeof($valor[0]); $i++) { $valor = explode('|',$valor[0][$i]); foreach ($valor as $val) { echo $val; } }
2. Cambiar el retorno para que devuelva un array, y aunque el explode
se evitaría, vendría la terapía de recorrer no uno, ni dos, sino 3 arreglos.
3. Cambiar el modo de obtener los datos, usar el query de mysqli,
y con eso sì se obtiene un fetch_array (1 registro) o un fetch_all (varios)
en cuyo caso se recorrería uno o máximo dos arreglos.
4. Hacer uso de adodb (para tu proyecto creo que vendrìa de perlas),
pues es liviano, fàcil de usar, y tiene el tema de bind params implementado
Ej Código PHP: $query = "SELECT nombre, apellido, tipousuario FROM m_usuarios WHERE username = ? AND password = ?"; $rs = $DB->GetAll($query,array($username, $password));
Pero al igual que el punto anterior, viene a dar uno o dos arreglos.
5. Hacer uso de un framework (Hay varias ofertas) que tienen tambièn ya
lo de bind params, y obtienen mejor los datos. Código PHP: $post['Post']['id'] // o $post->id
En ambos casos usandolos directo cuando son solo 1 registro,
y en un foreach cuando son varios.
Así que ahora, como dijo el arquitecto, y su interlocutor antes que él: 'El tema es de elección'
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com |