Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: GEORGEFRT en 11 Noviembre 2016, 06:15 am



Título: Problema para abrir base de datos
Publicado por: GEORGEFRT en 11 Noviembre 2016, 06:15 am
este es el código de conexion.php  


Código
  1. ?php
  2. $server="localhost";
  3. $username="root";
  4. $password="";
  5. $db='sulistado';
  6. $con=mysql_connect($server,$username,$password)or die("no se ha podido establecer la conexion");
  7. $sdb=mysql_select_db($db,$con)or die("la base de datos no existe");
  8. ?>

pero me da como error alguien me puede ayudar a poder conectar la base de datos o que es lo que me falta? gracias

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\conexion.php:6 Stack trace: #0 C:\xampp\htdocs\index.php(19): include() #1 {main} thrown in C:\xampp\htdocs\conexion.php on line 6


Título: Re: Problema para abrir base de datos
Publicado por: engel lex en 11 Noviembre 2016, 06:37 am
que versión de php usas? la extensión mysql habia quedado marcada como obsoleta (siendo sustituida por mysql_pdo o mysqli) para la versión 5.5... aqui la info http://php.net/manual/es/migration55.deprecated.php (http://php.net/manual/es/migration55.deprecated.php)

tambien podría ser que te falta la extensión, pero veo que usas xampp y ella lo trae por defecto...


Título: Re: Problema para abrir base de datos
Publicado por: GEORGEFRT en 11 Noviembre 2016, 06:59 am
si ya habia leído algo así, cambie



Código
  1. <?php
  2. $server="localhost";
  3. $username="root";
  4. $password="";
  5. $db='sulistado';
  6. $con=mysqli_connect($server,$username,$password)or die("no se ha podido establecer la conexion");
  7. $sdb=mysqli_select_db($db,$con)or die("la base de datos no existe");
  8. ?>


ahora me presenta esto


Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\conexion.php on line 7
la base de datos no existe


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: Problema para abrir base de datos
Publicado por: engel lex en 11 Noviembre 2016, 07:04 am
no funcionan exactamente igual... leete la documentación de mysqli... por este caso tienes que aprender tambien a leer los errores

Citar
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\conexion.php

... esperaba parametro 1 ser un mysqli, se recibió un string


en este caso los paramentros van al contrario, primero la conexión y luego el nombre



Título: Re: Problema para abrir base de datos
Publicado por: GEORGEFRT en 11 Noviembre 2016, 07:22 am
no le entiendo soy nuevo vi un tuto algo antiguo pero si me doy cuenta que si es algo pasado vere que diferencia hay entre la versión



el Xampp que descargue fue el 7.0.9

Incluye: Apache 2.4.23, MariaDB 10.1.16, PHP 7.0.9, phpMyAdmin 4.5.1, OpenSSL 1.0.2, XAMPP Control Panel 3.2.2, Webalizer 2.23-04, Mercury Mail Transport System 4.63, FileZilla FTP Server 0.9.41, Tomcat 7.0.56 (with mod_proxy_ajp as connector), Strawberry Perl 7.0.56 Portable



Título: Re: Problema para abrir base de datos
Publicado por: engel lex en 11 Noviembre 2016, 07:27 am
claro... en php 7 se cambiaron unas cosas importantes... recomiendo descargues xampp la versión que trae php 5.algo ya que los tutoriales que conseguirás son para 5... como 7 está reciente hay poca información para novatos... en 5 si usas por lo menos mysql, no te dirá que no existe, solo dirá que está obsoleta (podrás seguir el tutorial, y puedes buscar como quitar el aviso de obsoleto)


Título: Re: Problema para abrir base de datos
Publicado por: SetzerFF en 11 Noviembre 2016, 19:53 pm
Con mysqli_select_db con el estilo por procedimientos se pasa el primer argumento la conexiòn a la DB (el mysql_connect) y luego el nombre de la db.

Código
  1. $con=mysqli_connect($server,$username,$password);
  2. $sdb=mysqli_select_db($con, $db);

Y otra forma es usando el estilo orientado a objetos, màs avanzado.
Código
  1. $mysqli = new mysqli($server, $username, $password);
  2. $mysqli->select_db($db);


Te recomiendo usar excepciones para los errores.