Error mysql web antigua

v1t1n

Buenas tardes a todos, tengo un problema con una web de mi padre que le hicieron hace años y tiene este error:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future

Se lo arreglaría la persona que se lo hizo pero se fue a las américas y desapareció. He leído por Internet varias formas de corregirlo pero no me he atrevido. ¿Alguna sugerencia fácil para que no aparezca el pegote en la página al entrar? Tengo conocimientos de HTML escribiendo un par de webs sencillas para la universidad pero esta tiene más sustancia en cuanto a base de datos y alguna que otra función que no llego a abarcar.

Si alguien me da alguna fórmula mágica sin que le pueda llegar a desguazar la web a mi padre se lo agradecería. La tengo ya descargada del servidor en una carpeta pero al abrirla en Dreamweaver he visto que tiene bastante follón y no me he atrevido a editarla y volverla a subir por miedo a dejarla no funcional.

¡Se agradece toda ayuda!

Traber

Más que un error es un warning, lo raro es que tengas los errores habilitados en la página, deberían estar deshabilitados y se deben mostrar únicamente en un entorno de desarrollo, en producción siempre se quitan...

Para solucionarlo, con quitar la salida de warnings/errores estaría, con un par de líneas sería suficiente:

error_reporting(0);
ini_set('display_errors', 0);

Si tiene un fichero del tipo "config.php" o similar, lo metería al principio y au. Si utiliza un framework, busca la forma de deshabilitarlo globalmente en esa instancia del framework y ya está.

1 respuesta
X-Crim

mysqli

1 respuesta
willy_chaos

Lo de #2 es la forma de ocultarlo, pero eso no te solventa el problema. Si vuelven a actualizar el MySQL a una nueva version (como parece que ha pasado con tu hosting), quiza ya no te de ese warning, sino que directamente no te funcione.

Entonces:

https://secure.php.net/manual/es/function.mysqli-connect.php

Lo ideal y para evitar problemas en el futuro

2 respuestas
RaymaN

¿A cuánto se paga que venga alguien a decirle que implemente PDO?

2 respuestas
VirtualEvan

Lo que te dicen los de arriba, upgrade a mysqli y quitar la salida de errores por pantalla, deberías hacerlas ambas.

Si te vas a lanzar modificarlo tú, descárgate wamp o aslgo así sencillo para que puedas probar la web en tu ordenador correctamente y sepas que funcione bien antes de subirlo al hosting

#5 De paso ya, que le diga que no use php

Traber

#3 #4 Cambiar todo a mysqli requiere también cambiar todas las funciones de consulta, lo cual no es absolutamente necesario en su entorno actual y le va a dar problemas en varios sitios seguro (hasta que lo cambie en toda la web), entiendo y comparto que mysqli > mysql, pero imagino que el querrá lo más rápido y haciendo los mínimos cambios posibles, si supiera de que va el tema no habría abierto un hilo pidiendo ayuda xD.

De igual manera, en producción las salidas de errores se deben quitar SIEMPRE.

1 respuesta
Amazon

#4 no es mysql lo que no tienen que actualizar, sino PHP

1 respuesta
willy_chaos

#8 Cierto, se me ha ido la pinza

#7 Si si, si no digo que no tenga que cambiar mas cosas, pero yo preferiria dedicarle un tiempo ahora y mirar de dejarlo ya bien que no esperar a que cambien la version de php y ya no le funcione la web. Pero claro no se que conocimientos de los que dispone como para afrontar tal tarea.

B

Tienes dos opciones:

1- Como comentó 2 pero te va dar problemas con futuras versiones de PHP.
2- Refactorizar el código y usar mysqli( la más fácil pues la sintaxis es casi la misma) o pdo( más seguro y flexible).

1 respuesta
Traber

#5 Ya tienes tu ganador en #10 xD

E

Pero no le invites a una tapa que te la mete doblada.

Usuarios habituales