PHP - Conexión

 
Vista:
sin imagen de perfil

Conexión

Publicado por Joak (7 intervenciones) el 04/02/2014 18:15:45
Hola Foro buenos días.

Soy nuevo en todo lo relacionado con ambientes Distribuidos, pero la necesidad de hacer algunos Web Services para usarlos con dispositivos móvile, por eso estoy aquí.

Hice un programa en PHP el clásico de "HOLA MUNDO" y funcionó correctamente.

Ahora incorporo conexión a una base de datos y aquí estoy atorado, antes me salía un error de acceso denegado, pero ahora simplemente no sale nada, tengo contratado un servicio de hostting, me comentan que el nombre del servidor que debo de poner en la línea de comando es "Localhost", pero no tengo éxito, antes de todo esto, hice la importación de registros a mi base de datos, así que he comprobado que el usuario y password son correctos.

Esta es mi línea de conexión a la base de datos, agradezco sus comentarios.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
class RedeemAPI {
    private $db;
    // Constructor - open DB connection
    function __construct() {
        $this->db = new mysqli('localhost', 'futchoco_admin', 'Futcho', 'futsoft_futsoft');
        $this->db->autocommit(FALSE);
    }
    // Destructor - close DB connection
    function __destruct() {
        $this->db->close();
    }
    // Main method to redeem a code
    function redeem() {
        // Print all codes in database
        $stmt = $this->db->prepare('SELECT id_arbitro FROM arbitro');
        $stmt->execute();
        $stmt->bind_result($id_arbitro);
        while ($stmt->fetch()) {
            echo "$id_arbitro !";
        }
        $stmt->close();
    }
}
 
// This is the first thing that gets called when this page is loaded
// Creates a new instance of the RedeemAPI class and calls the redeem method
$api = new RedeemAPI;
$api->redeem();
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Conexión

Publicado por bathorz (33 intervenciones) el 04/02/2014 20:08:06
Agrega esto para mostrar los errores:
1
2
3
4
5
6
7
8
9
10
function __construct() {
      $this->db = new mysqli('localhost', 'futchoco_admin', 'Futcho', 'futsoft_futsoft');
      $this->db->autocommit(FALSE);
      if (mysqli_connect_errno()) {
         printf("Fallo conexion: %s\n", mysqli_connect_error());
         exit();
      }
   }
 
 $stmt = $this->db->prepare($sSQL) or die(mysqli_error($this->db));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conexión

Publicado por Joak (7 intervenciones) el 04/02/2014 21:33:42
Gracias Bathroz

Hice los cambios como me lo sugeriste, sigo sin tener ninguna respuesta ni error ni nada, ejecuto la siguiente instrucción y no obtenego nada de respuesta .. http://www.futcho7.com.mx/WebService/index.php

Aquí el código modificado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
class RedeemAPI {
    private $db;
    // Constructor - open DB connection
    function __construct() {
        $this->db = new mysqli('localhost', 'futchoco_admin', 'Futcho', 'futsoft_futsoft');
        $this->db->autocommit(FALSE);
        if (mysqli_connect_errno()) {
         printf("Fallo conexion: %s\n", mysqli_connect_error());
         exit();
      }
    }
    $stmt = $this->db->prepare($sSQL) or die(mysqli_error($this->db));
    // Destructor - close DB connection
    function __destruct() {
        $this->db->close();
    }
    // Main method to redeem a code
    function redeem() {
        // Print all codes in database
        $stmt = $this->db->prepare('SELECT id_arbitro FROM arbitro');
        $stmt->execute();
        $stmt->bind_result($id_arbitro);
        while ($stmt->fetch()) {
            echo "$id_arbitro !";
        }
        $stmt->close();
    }
}
 
// This is the first thing that gets called when this page is loaded
// Creates a new instance of the RedeemAPI class and calls the redeem method
$api = new RedeemAPI;
$api->redeem();
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conexión

Publicado por bathorz (33 intervenciones) el 04/02/2014 22:18:35
No lo expliqué bien. El código completo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
 
class RedeemAPI {
 
   private $db;
 
   function __construct() {
      $this->db = new mysqli('localhost', 'futchoco_admin', 'Futcho', 'futsoft_futsoft');
      $this->db->autocommit(FALSE);
      if (mysqli_connect_errno()) {
         printf("Fallo conexion: %s\n", mysqli_connect_error());
         exit();
      }
   }
 
   function __destruct() {
      $this->db->close();
   }
 
   function redeem() {
      $stmt = $this->db->prepare('SELECT id_arbitro FROM arbitro') or die(mysqli_error($this->db));
      $stmt->execute();
      $stmt->bind_result($id_arbitro);
      while ($stmt->fetch()) {
         echo "$id_arbitro !";
      }
      $stmt->close();
   }
 
}
 
$api = new RedeemAPI;
$api->redeem();
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conexión

Publicado por Joak (7 intervenciones) el 04/02/2014 22:31:17
Gracias bathorz.

Ya hice las correcciones y ahora si tengo el error ...

Fallo conexion: Access denied for user 'futchoco_admin'@'localhost' to database 'futcho_futsoft'

El detalle, es que tanto usuario y password son correctos, que más puede ser?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Conexión

Publicado por xve (6935 intervenciones) el 05/02/2014 07:53:54
Hola Joak, el problema creo que es que ese usuario no tiene acceso a la base de datos futcho_futsoft.
Añade el usuario en la tabla db de la base de datos mysql indicando que tiene acceso a esa tabla...

si nos puedes comentar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar