New question

Question:

Date: 05-02-2016 16:56:46 (In Spanish)

Problema al conectar a la Base de Datos MySQL[Resolved]

Cuando voy a enviar los datos a mi formulario me aparece este error:
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\aprendiendo_php\script_jairo1.php:7 Stack trace: #0 {main} thrown in C:\xampp\htdocs\aprendiendo_php\script_jairo1.php on line 7

y no se como corregirlo.

Este es el código que estoy utilizando para hacer la conexión a la base de datos:
<?php
$nombre=$_POST['nombre'];
$email=$_POST['email'];
$pais=$_POST['pais'];
$password=$_POST['password'];

$conectar= mysql_connect("localhost","root","")
or die ("no se pudo realizar la conexion");
mysql_select_db ("cursophp",$conectar)
or die ("error con la conexion a la base de datos");

$sql_insertar="INSERT INTO php SET nombre='$nombre'; email='email', pais='pais', password='password'";
mysql_query($sql_insertar,$conectar) or die (mysql_error());   
?>


Tags: Database - Deprecated features - MySQL - PHP - Question Votes: 4 - Answers: 16 - Views: 84 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 06-02-2016 04:33:19 Hola Jairo, según veo en tu mensaje de error "Call to undefined function mysql_connect()", la función mysql_connect() no esta disponible en tu entorno de ejecución, es posible que estes utilizando una versión de PHP que no dispone de soporte para las funciones obsoletas de PHP para conectar con MySQL..., por lo que aquí tienes dos opciones.

    1) utilizar las nuevas funciones de PHP para conectar con MySQL (mysqli_connect(), etc.), o algún otro método como PDO.
    2) utilizar una versión anterior de PHP y/o habilitas las funciones obsoletas (mysql_connect(), etc.).

    Aquí te adjunto un ejemplo de conexión con MySQLi (extraido de la documentación oficial):
    <?php
    $enlace = mysqli_connect("127.0.0.1", "mi_usuario", "mi_contraseña", "mi_bd");
    
    if (!$enlace) {
        echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
        echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
        echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
    
    echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
    echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;
    
    mysqli_close($enlace);
    ?>


    Saludos,
      Votes: 3 - Link answer
     
  • Date: 06-02-2016 06:01:04 me aparece que la conexión con la base de datos es exitosa pero cuando quiero mirar la tabla no me aparecen los datos que ingrese.   Votes: 1 - Link answer
     
  • Date: 06-02-2016 14:21:57 Pero entonces ¿cuál es el error?, si el error es el que comentaste en la pregunta original "Call to undefined function mysql_connect()", entonces tienes que releer mi respuesta anterior, si el error es otro, por favor informalo, y si no obtienes error también es importante que indiques el estado de la página (si queda en blanco, si carga, etc), y también se debe verificar que este activado el reporte de errores en PHP.

    Saludos!
      Votes: 3 - Link answer
     
  • Date: 08-02-2016 04:14:51 Hola jairo viendo tu codigo donde haces la insercion veo que esta mal tu estructura para el insert asi no es la estructura veo q tu estas haciendo con si fuera un update y eso esta mal para insertar se hace la siguiente manera

    
    el tuyo (esa estructura no existe)
    
    $sql_insertar="INSERT INTO php SET nombre='$nombre'; email='email', pais='pais', password='password'";
    mysql_query($sql_insertar,$conectar) or die (mysql_error());   
    
    



    deberia ser asi


    $sql_insertar="INSERT INTO php (nombre,email,pais,password) values ('$nombre','email', 'pais','password')";
    mysql_query($sql_insertar,$conectar) or die (mysql_error());   
    
    
    
    



    saludos
      Votes: 3 - Link answer
     
  • Date: 08-02-2016 06:42:12 Hola Juan, eso que comentas no es correcto, si es posible hacer un INSERT en MySQL usando la sintaxis de UPDATE, por medio del SET.

    Aquí puedes verlo en la documentación oficial: https://dev.mysql.com/doc/refman/5.6/en/insert.html

    A simple vista si detecto un punto y coma donde debería haber una coma (despues de la variable "$nombre"), veamos en código:

    Original:
    $sql_insertar="INSERT INTO php SET nombre='$nombre'; email='email', pais='pais', password='password'";


    Corregido:
    $sql_insertar="INSERT INTO php SET nombre='$nombre', email='email', pais='pais', password='password'";


    Jairo, avisanos si has podido resolver el problema y de no ser así relee mis respuestas anteriores, ya que te solicito retroalimentación (feedback) para poder ayudarte.

    Saludos,
      Votes: 5 - Link answer
     
  • Date: 08-02-2016 13:30:37 Con el codigo de juan quinto me aparece Fatal error: Uncaught Error: Call to undefined function mysql_query() no se que pueda estar pasando, puede ser mi servidor ?   Votes: 1 - Link answer
     
  • Date: 08-02-2016 13:51:15 Gracias a todos el problema estaba en mi servidor. Este fue el codigo que termine utilizando.
    <?php
    $nombre=$_POST['nombre'];
    $email=$_POST['email'];
    $pais=$_POST['pais'];
    $password=$_POST['password'];
    
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "cursophp";
     // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection fallida: " . $conn->connect_error);
    } 
    
    $sql = "INSERT INTO php (nombre, email, pais, password)
    VALUES ('$nombre', '$email', '$pais', '$password')";
    
    if ($conn->query($sql) === TRUE) {
        echo "se creo el usuario";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    
    $conn->close();
    ?>
      Votes: 4 - Link answer
     
  • Date: 09-02-2016 06:03:22 Jairo, muchas gracias por compartir tu solución.

    A modo de conclusión, como bien indicas "el problema" estaba en tu servidor, pero quiero rescatar (y por eso pongo "el problema" entre comillas) que tu servidor no tiene un problema, más bien no tiene soporte para las funciones deprecadas de PHP para conectar con MySQL, y esta bien que esto sea así porque las mismas fueron remplazadas por las nuevas funciones PHP MySQLi. Si observamos tu pregunta original y la solución vemos que originalmente estabas utilizando las funciones deprectadas de PHP y el error obtenido estaba claro "Call to undefined function mysql_connect() ~ no esta definida la función invocada", y al cambiar por una conexión MySQLi todo funcionó sin problemas.

    Saludos a todos!
      Votes: 6 - Link answer
     
  • Date: 09-02-2016 09:14:47 Hola jairo si te puse el codigo mysql_query es porque en tu publicacion vi q estabas usando el mysql_connect

    
        <?php
        $nombre=$_POST['nombre'];
        $email=$_POST['email'];
        $pais=$_POST['pais'];
        $password=$_POST['password'];
        $conectar= mysql_connect("localhost","root","")
        or die ("no se pudo realizar la conexion");
        mysql_select_db ("cursophp",$conectar)
        or die ("error con la conexion a la base de datos");
        $sql_insertar="INSERT INTO php SET nombre='$nombre'; email='email', pais='pais', password='password'";
        mysql_query($sql_insertar,$conectar) or die (mysql_error());   
        ?>
    


    entonces viendo facil tu codigo la solucion era en el insert es por ello que te dije que correguieras el insert

    $sql_insertar="INSERT INTO php (nombre,email,pais,password) values ('$nombre','email', 'pais','password')";
    



    pero a las finales optaste por el mysqli ,

    saludos y que bueno que lo hayas corregido :)
      Votes: 3 - Link answer
     
  • Date: 15-08-2016 13:18:31 No era problema solo de esto?

    Original:
    $sql_insertar="INSERT INTO php SET nombre='$nombre'; email='email', pais='pais', password='password'";


    Según yo:
    $sql_insertar="INSERT INTO php SET nombre='$nombre'; email='$email', pais='$pais', password='$password'";


    alguien que me corrija si estoy mal
      Votes: 2 - Link answer
     
  • Date: 14-03-2017 18:19:01 Fernando Mosquera me sirvio mucho tu respuesta muchas gracias! saludos desde chile   Votes: 1 - Link answer
     
  • Date: 18-07-2017 06:56:02 Hola Miguel, para poder habilitar o no el conector viejo de MySQL vas a necesitar tener acceso a la configuración del servidor y correr un versión de PHP vieja (que de soporte al conector).

    Comentame un poco, es un servidor compartido (shared server), VPS o dedicado? (un hosting conocido?)

    Que versión de PHP estas usando?

    Tenes acceso a cambiar la configuración del servidor y PHP? (php.ini, ssh, etc)

    Saludos!
      Votes: 0 - Link answer
     
  • Date: 30-09-2017 11:41:35 Gracias chicos me mate buscando soluciones a esto y gracias esto lo resolvi saludos desde mexico
      Votes: 0 - Link answer
     
  • Date: 08-04-2018 18:20:50 Hola Jairo, por lo visto estabamos siguiendo el mismo videotutorial de PHP. Yo probé ese codigo en la versión 5 de PHP y si funciona a la perfección, al actualizar a la versión 7 dejó de funcionar. Voy a probar el código que compartes como solución a ver que tal me va. Saludos!!!   Votes: 0 - Link answer
     
  • Date: 30-05-2018 17:56:35 Tengo este mismo error en mi pc, pero en las computadoras de la preparatoria no me sale y este es el codigo que estoy utilizando
    <?php
    
    echo "<center>";
    
    $con = mysql_connect("localhost","root","");
    if(!$con)
    {
    	die('Could not connect'.mysql_error());
    }
    mysql_select_db("ferreteriagadin",$con);
    
    $sql = "INSERT INTO productosgadin (Codigo,Producto,Cantidad,Precio) 
    VALUES('$_POST[Codigo]','$_POST[Producto]','$_POST[Cantidad]','$_POST[Precio]')";
    
    if(!mysql_query($sql,$con))
    {
    	die('Error:'. mysql_error());
    }
    echo "1 registro agregado";
    
    mysql_close($con);
    
    echo "</center>";
    
    
    ?>
      Votes: 0 - Link answer
     
  • Date: 24-01-2019 03:41:29 Tengo el mismo error, evidentemente cuando instalé el XAMPP en mi PC instaló las nuevas funciones, tendré que codificar nuevamente. GRACIAS!!   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com