Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No se como conectarme a mysql con una funcion

Estas en el tema de No se como conectarme a mysql con una funcion en el foro de PHP en Foros del Web. Hola a todos, estoy aprendiendo sobre el tema y antiguamente usaba mysql, y ahora ya es obloteto, deje hace mucho y he vuelto a empesar,: ...
  #1 (permalink)  
Antiguo 23/02/2018, 23:52
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta No se como conectarme a mysql con una funcion

Hola a todos, estoy aprendiendo sobre el tema y antiguamente usaba mysql, y ahora ya es obloteto, deje hace mucho y he vuelto a empesar,:

tengo dos archivos uno index.php y otro conectar.php,

en el index.php

Código PHP:
Ver original
  1. <?php
  2. include("conectar.php");
  3. conectar();
  4. $nombre="fede";
  5. $celular=123456789;
  6.  
  7.  
  8. $enlace= "INSERT INTO datos (nombre, celular, correo)
  9. VALUES ('$nombre', '$celular', '$correo')";
  10.  
  11.  
  12. ?>


y en conectar:


Código PHP:
Ver original
  1. <?php
  2.  
  3. function conectar() {
  4. $enlace = mysqli_connect("127.0.0.1", "root", "", "nombres");
  5.  
  6. if (!$enlace) {
  7.     echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
  8.     echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
  9.     echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
  10.     exit;
  11. }
  12.  
  13. echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
  14. echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;
  15.  
  16. }
  17. ?>


No sale ningún error pero tampoco graba ningún dato....

que estoy haciendo mal?

Gracias de antemano y por su tiempo

Saludos a todos.!
  #2 (permalink)  
Antiguo 24/02/2018, 05:34
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: No se como conectarme a mysql con una funcion

Hola fedefrankk,

Te falta ejecutar tu consulta con mysqli_query.
  #3 (permalink)  
Antiguo 24/02/2018, 05:36
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: No se como conectarme a mysql con una funcion

Include es un constructor y como tal no necesita los paréntesis entorío a su argumento

El valor de $celular es numérico e intentas hacer la inserción como cadena de texto

No estás realizando ninguna consulta http://www.mysqltutorial.org/mysql-i...te-key-update/
  #4 (permalink)  
Antiguo 24/02/2018, 06:30
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No se como conectarme a mysql con una funcion

Deberías de utilizar clases, asi organizas mejor tu codigo y sabes en todo momento donde andas, por ejemplo:

Clase conectar
Código PHP:
Ver original
  1. class Conectar {
  2.     public function con(){
  3.         $db = new mysqli("localhost", "root", "", "pruebas");
  4.         if ($db->connect_errno) {
  5.             return "Fallo al conectar a MySQL: (" . $db->connect_errno . ") " . $db->connect_error;
  6.         }
  7.         return $db;
  8.     }
  9. }


Clase principal:
Código PHP:
Ver original
  1. include 'Conectar.php';
  2.  
  3. class Loquesea extends Conectar{
  4.  
  5.     public function inserta($X){
  6.         $nombre  = $X->datoa;
  7.         $celular = $X->datob;
  8.         $correo  = $X->datoc;
  9.  
  10.         $this->con->autocommit(false);
  11.  
  12.         try{
  13.  
  14.            
  15.             $enlace = $this->con->query("INSERT INTO datos (nombre, celular, correo) VALUES ('$nombre', '$celular', '$correo')");
  16.            
  17.             if(!$enlace){
  18.                 throw new Exception(error_get_last()['message']);
  19.                
  20.             }
  21.  
  22.             $this->con->commit();
  23.             $this->con->close();
  24.             return "200";
  25.  
  26.         }catch(Exception $e){
  27.             $this->con->roolback();
  28.             $this->con->close();
  29.             return $e->getMessage();
  30.         }
  31.     }
  32.  
  33. }
  34.  
  35. $a = new Loquesea();
  36. echo $a->inserta((object)array('datoa'=>'fede','datob'=>'123456789','datoc'=>'[email protected]'));

no se es una idea. Saludos
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 24/02/2018, 17:22
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Respuesta: No se como conectarme a mysql con una funcion

Hola .!!! Muchas gracias por contestar, disculpa mi ignorancia, eso es una conexión PDO?, basados en objeto realmente no sé nada,

La idea es hacer un archivo conectar.php que tenga todos los parámetros, nombre de usuario, base de datos, etc., ... y lo puse dentro de una función, para usarlo en altas, bajas y modificaciones, listados,

Entonces por en altas,php inserto un include, llamo la función y hago el INSERT
en elimino.php inserto un include llamo a la función y hago el DELET,
y así sucesivamente,

Se puede hacer así?,

Desde ya muchas gracias por tu repuesta me súper ayuda para seguir adelante y por tu tiempo.!
Saludos a todos .
  #6 (permalink)  
Antiguo 24/02/2018, 17:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No se como conectarme a mysql con una funcion

Sí se puede, pero necesitas recordar cómo funcionan las cosas en PHP, por ejemplo, al conectar a la base de datos se genera un "enlace" que debes mantener en una variable para ejecutar cualquier operación.

conectar.php
Código PHP:
Ver original
  1. <?php
  2.      
  3. function conectar() {
  4.     $enlace = mysqli_connect("127.0.0.1", "root", "", "nombres");
  5.      
  6.     if (!$enlace) {
  7.         echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
  8.         echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
  9.         echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
  10.         exit;
  11.     }
  12.     // No es conveniente que realices salidas HTML, a menos que sea para depurar
  13.     // echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
  14.     // echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;
  15.  
  16.     // Debes retornar la variable para realizar operaciones
  17.     return $enlace;
  18. }

index.php
Código PHP:
Ver original
  1. <?php
  2. include("conectar.php");
  3. $enlace = conectar();
  4. $nombre="fede";
  5. $celular=123456789;
  6.  
  7. // Esto es solo una asignación de cadena, no tiene efecto por sí misma
  8. $sql = "INSERT INTO datos (nombre, celular, correo) VALUES ('$nombre', '$celular', '$correo')";
  9.  
  10. // Ejecutar la consulta, usando el enlace obtenido al conectar
  11. mysqli_query($enlace, $sql);
  12.  
  13. // Ahora, para leer los datos guardados
  14. $sql = "SELECT * FROM datos WHERE correo = '$correo'";
  15.  
  16. // Ejecuta la consulta obteniendo un juego de resultados
  17. $resultado = mysqli_query($enlace, $sql);
  18.  
  19. // Ahora deberías analizar si se encontraron registros o no (num_rows)
  20. // Después, leer los resultados (fetch_*)

Date una vuelta por el manual oficial http://php.net/manual/es/class.mysqli.php o busca algún tutorial para ponerte al día.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 25/02/2018, 01:18
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
De acuerdo Respuesta: No se como conectarme a mysql con una funcion

Hola, Triby gracias por tu repuesta

Me sirve muchísimo, ahora empiezo a buscar lo que es mysqli_query, ect,

gracias
Muchos saludos

Etiquetas: funcion, mysql, nombre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:29.