Crear conexión con PHP con mysqli_connect, solucionando Deprecated: mysql_connect():
Desde hace algún tiempo que algunas funciones empezaron a quedarse obsoletas como mysql_connect o mysql_fetch_array, con lo que al pasar a diferente versión de PHP, es posible que nos salgan continuamente warnings del tipo:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
En la mayoría de los casos puede no ser una molestia, simplemente en producción se ocultan los mensajes de warnings y sin problema. Pero si habéis probado a crear un xml o incluso atacarlo utilizando jquery para comunicar pasando parámetros con json, es posible que el resultado no sea el esperado por que te añadirá espacios en blanco, saltos de linea, etc…
La solución es dar el salto a la nueva función, para ello nada más simple, os dejo un ejemplo de conexión completa con mysqli_connect y consultar con mysqli_query:
<?php
define(«cServidor», «localhost»);
define(«cUsuario», «miusuario»);
define(«cPass»,»mipass»);
define(«cBd»,»mibbdd»);
$conexion = mysqli_connect(cServidor, cUsuario, cPass, cBd);
$consulta = ‘select * from secciones’;
$resultado = mysqli_query($conexion, $consulta);
// recorremos el resultado y pintamos los nodos
while ($registro = mysqli_fetch_array($resultado)){
}
?>
Si os fijáis, la única diferencia es que con mysqli_connect se añade también el último parámetro de base de datos, no teniendo que ser seleccionado como se hacía con la función ya Deprecated. Por otro lado, la función de mysqli_query para realizar la consulta, recibiría el parámetro de conexión de la base de datos y a continuación la consulta propiamente dicha. De esta manera podremos estar manejando varias consultas con diferentes bases de datos de forma mucho más potente y sencilla.
El resto ya lo conocéis, en $registro se guarda los valores recibidos y solo hay que ir leyendo el array de campos.
Espero que os sirva! Si tenéis cualquier duda comentadla y si os ha gustado os agradezco que compartais!
Gracias! tal y como decías no me funcionaba el return del json por culpa de la función obsoleta de mysql_connect!
Me añadía algún caracter o letra o no sé, pero al cambiar a la nueva función de mysqli ha funcionado a la primera.
Gracias otra vez!
Nada 🙂 algunos detalles como lo de Json nos traen de cabeza. Como la codificación en UTF-8! aunque no es este caso jeje 😉
Excelente!
Gracias 😉
infinitamente agradecido, a pesar de ser una sintaxis tan simple definitivamente hay que tener preparación para poder ofrecer una solucion como esta, me ha funcionado muy bien FELICIDADES por la página, esta super útil
Gracias a ti por comentar 🙂
hola tengo una consulta, aqui en este campo brother
$consulta = ‘select * from secciones’; en secciones que parte de mi trabajo va?
el error es Parse error: in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\Connections\server.php on line 11
En esa línea estás definiendo la consulta que lanzarás después. Es una simple asignación de un string a la variable consulta.
Es posible que el error te venga de antes, revisa las comillas que estén correctamente, al copiar/pegar es posible que te de error.
Un saludo!
Gracias por la ayuda
De nada 🙂
perfecto!
muchas gracias
Gracias a ti por comentar!