uncaught solucion mysql_set_charset mysql_select_db mysql_connect llamada grave función fatal error detectado definida php mysql xampp

php - solucion - Error fatal: Error no detectado: Llamada a la función indefinida mysql_connect()



php fatal error uncaught error call to undefined function mysql_set_charset() (9)

Estoy tratando de hacer una conexión simple con XAMPP y el servidor MySQL, pero cada vez que intento ingresar datos o conectarme a la base de datos, aparece este error.

Error fatal: Error no detectado: Llamada a la función indefinida mysql_connect () en C: / xampp / htdocs / register.php: 22
Seguimiento de pila: # 0 {main} arrojado en C: / xampp / htdocs / register.php en la línea 22

Ejemplo de línea 22:

$link = mysql_connect($mysql_hostname , $mysql_username);


Asegúrate de no haber cometido un error tipográfico como en mi caso

msyql_fetch_assoc debería ser mysql


Como sugieren otras respuestas ... Algún tipo (por cualquier razón) decidió que su código anterior no debería funcionar cuando actualiza su PHP, porque él sabe mejor que usted y no le importa lo que hace su código o lo simple que es. usted para actualizar

Bueno, si no puedes actualizar tu proyecto de la noche a la mañana, puedes

degrada tu versión de PHP a la versión que funcionó

o...

use una cuña (tipo de polyfill) como https://github.com/dshafik/php7-mysql-shim o https://github.com/dotpointer/mysql-shim , y luego encuentre un lugar para include_once("choice_shim.php"); en algún lugar de tu código

Eso mantendrá su antiguo código PHP en funcionamiento hasta que esté de humor para actualizar ...


Para mysqli puedes usar:

$ db = ADONewConnection (''mysqli'');

... ...

$ db-> execute ("establecer nombres ''utf8''");


Puede usar mysqli_connect($mysql_hostname , $mysql_username) lugar de mysql_connect($mysql_hostname , $mysql_username) .

mysql_* funciones de mysql_* se eliminaron a partir de PHP 7. Ahora tiene dos alternativas: MySQLi y PDO .


Se recomienda usar las extensiones MySQLi o PDO. No se recomienda usar la antigua extensión mysql para un nuevo desarrollo, ya que fue desaprobada en PHP 5.5.0 y se eliminó en PHP 7.

PHP ofrece tres API diferentes para conectarse a MySQL. A continuación mostramos 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" utilizando el nombre de usuario "nombre de usuario" y la contraseña "contraseña". Y se ejecuta una consulta para saludar al usuario.

Ejemplo # 1 Comparando las tres API MySQL

<?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'']); ?>

Le sugiero que pruebe MySQLi y PDO y descubra qué diseño de API prefiere.

Lea Elegir una API y ¿Por qué no debería usar las funciones mysql_ * en PHP?


mysql_* ese error porque la función mysql_connect (en realidad, todas las funciones mysql_* ) se eliminaron de PHP 7. Ahora puede usar MySQLi o PDO .

Ejemplo:

$mysqli = new mysqli($hostname, $username, $password, $database);


mysql_* funciones mysql_* se han eliminado en PHP 7.

Ahora tiene dos alternativas: MySQLi y PDO .

La siguiente es una comparación antes (-) y después (+) de algunos cambios comunes en MySQLi, sacados directamente del código de trabajo:

-if (!$dbLink = mysql_connect($dbHost, $dbUser, $dbPass)) +if (!$dbLink = mysqli_connect($dbHost, $dbUser, $dbPass)) -if (!mysql_select_db($dbName, $dbLink)) +if (!mysqli_select_db($dbLink, $dbName)) -if (!$result = mysql_query($query, $dbLink)) { +if (!$result = mysqli_query($dbLink, $query)) { -while ($row = mysql_fetch_array( $result, MYSQL_ASSOC )) { +while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC )) { -mysql_close($dbLink); +mysqli_close($dbLink);


mysql_* funciones mysql_* se han eliminado en PHP 7.

Probablemente tengas PHP 7 en XAMPP. Ahora tiene dos alternativas: MySQLi y PDO .

Además, here hay una buena página wiki sobre DOP.