Error grave: error no detectado: llamada a la función no definida mysql_connect ()

error php

Si recibes el error : error no detectado: llamada a la función no definida mysql_connect (), intento explicarte en este post, su solución.

Las funciones de mysql_* se eliminaron a partir de PHP 7.

En su defecto puedes usar: mysqli_connect($mysql_hostname , $mysql_username) en lugar de mysql_connect($mysql_hostname , $mysql_username).

No se recomienda usar la extensión de mysql anterior para nuevos proyectos, ya que al estar obsoleta queda expuesta a problemas de seguridad y compatibilidad serios que arrojarán este error.

Las alternativas que ofrece PHP, son MySQLi y PDO , que es son las que recomiendan los creadores del lenguaje, utilizar. 

PHP ofrece estas tres API diferentes para conectarse a MySQL.

Aquí en un este cuadro tomado de en  it-swarm donde se comparan las API proporcionadas por las extensiones mysql, mysqli y PDO.

Cada fragmento de código crea una conexión a un servidor MySQL que se ejecuta en «example.com» usando el nombre de usuario «username» y la contraseña «password».

<?php
// mysqli
$mysqli = new mysqli("example.com", "username", "password", "database");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:Host=example.com;dbname=database', 'username', 'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("example.com", "username", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

Otras dos opciones que tiene, quien no desee actualizar son:

Retornar a la versión anterior de PHP, donde funciona el código, en la 5.5, ya estaba obsoleta la api mysql_* 

Emplear una puente  llamado  mysql-shim, que puede hallar en este link.

La idea es incluirlo en tu código con un include, algo asi como:

include_once("choice_shim.php"); 

Y hasta aquí. Esto es todo y espero haber ayudado a alguien.

Gracias

Es tan corto el amor, y es tan largo el olvido

P. Neruda

Translate »