Visualizzazione risultati 1 fino 16 di 16

Discussione: problema connessione mysqli

  1. #1
    Guest

    Predefinito problema connessione mysqli

    Salve a tutti sto avendo un problema con la classe di connessione al database vi posto la classe:

    Codice PHP:
    class database {

    private
    $query;
    private
    $mysqli;
    private
    $result;
    private
    $system="../system/connect.adt";

    public function
    __construct(){

    // i dati di accesso sono salvati in un file li estraggo e li passo
    if(file_exists($this->system)){
    $arrdata=file($this->system);
    foreach(
    $arrdata as $pass){
    $access[]=$pass;
    }
    $host=$access[0];
    $user=$access[1];
    $password=$access[2];
    $database_name=$access[3];
    }

    $this->connect($host,$user,$password,$database_name);
    }
    public function
    connect($host, $user, $password, $database_name){

    $this->mysqli=new mysqli($host, $user, $password, $database_name);
    if(
    $this->mysqli->connect_error){
    exit(
    $response="error|Errore connessione database");
    }
    }
    ...
    il problema e che mi dice questo:
    Warning: mysqli::mysqli() [mysqli.mysqli]: php_network_getaddresses: getaddrinfo failed: Host sconosciuto. in D:\SITI WEB\lavori\audit.comm\include\db.php on line 31

    Warning: mysqli::mysqli() [mysqli.mysqli]: [2002] php_network_getaddresses: getaddrinfo failed: Host sconosciuto. (trying to connect via tcp://localhost :3306) in D:\SITI WEB\lavori\audit.comm\include\db.php on line 31

    Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): php_network_getaddresses: getaddrinfo failed: Host sconosciuto. in D:\SITI WEB\lavori\audit.comm\include\db.php on line 31

    Ma i dati dell'array di accesso li ho stampati a video e ci sono tutti e corretti.

  2. #2
    Guest

    Predefinito

    Il fatto strano che non riesco a capire che se nelle variabili $host, $user, $passwrod, $database_name gli metto il valori manualmente cioè in questo modo:
    $host="localhost";
    $user="root";
    $password="********";
    $database_name="database";

    tutto funziona alla perfezione, ma allora perchè con l'array non funge?

  3. #3
    Guest

    Predefinito

    Magari perchè l'utente da usare non è root?

  4. #4
    Guest

    Predefinito

    no no e root assolutamente ho visto nei privilegi del database

  5. #5
    Guest

    Predefinito

    te lo detto se li passo manualmente i dati senza l'array mi funziona tutto

  6. #6
    Guest

    Predefinito

    ok trovato il problema, siccome nel file salvavo i dati con "\r\n" nel nome del databse evidentemente mi leggeva anche quello.

  7. #7
    Guest

    Predefinito

    ora però riscontro un altro problema.

    in uno script devo vedere se nel database ci sono le tabelle con un SHOW TABLE ed ho fatto questo sempre nella classe di connessione del database:
    Codice PHP:
    public function prepare_query($query){
    $this->query = $query;
    return
    true;
    }

    public function
    query(){
    if(isset(
    $this->query)){
    $this->result = $this->mysqli->query($this->query);
    if(!
    $this->result){
    exit(
    $response="error|Errore nell'interrogazione al database.".$this->mysqli->error);
    return
    false;
    }else{
    return
    true;
    }
    }
    }
    nello script ho fatto questo:
    Codice PHP:
    $sql="SHOW TABLE";
    require_once
    "../include/db.php";
    $db=new database;
    $db->prepare_query($sql);
    $countdb=$db->query();
    echo
    count($countdb);
    ma mi da questo errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    sono un po confuso perchè questo errore di sintassi?

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da provalavori Visualizza messaggio
    no no e root assolutamente ho visto nei privilegi del database
    Beh non avevo capito che era fuori da AV.
    Cmq non è raccomandabile usare l'utente root.

    Riguardo la query, è SHOW TABLES;

  9. #9
    Guest

    Predefinito

    ok risolto anche questo ma ce un problema mi conta 1 tabella invece ce ne sono 16.

  10. #10
    Guest

    Predefinito

    posso chiederti una cosa?

  11. #11
    Guest

    Predefinito

    scrivi

  12. #12
    Guest

    Predefinito

    dalla classe che ho postato come faccio a tirarmi fuori i nomi delle tabelle?

  13. #13
    Guest

    Predefinito

    probabilmente devo fare un fetch_assoc ma dalla classe come lo faccio

  14. #14
    Guest

  15. #15
    Guest

    Predefinito

    be si questo lo sapevo già e solo che non riesco a capire come tirarlo fuori da questa classe:

    Codice PHP:
    class database {
    private
    $query;
    private
    $result;

    public function
    prepare_query($query){
    $this->query = $query;
    return
    true;
    }

    public function
    query(){
    if(isset(
    $this->query)){
    $this->result = $this->mysqli->query($this->query);
    if(!
    $this->result){
    exit(
    $response="error|Errore nell'interrogazione al database.".$this->mysqli->error);
    return
    false;
    }else{
    return
    true;
    }
    }
    }
    }
    faccio la chiamata alla classe passo la query a prepare_query(), chiamo query() e poi come tiro fuori i risultati?

  16. #16
    Guest

    Predefinito

    ho provato chiamando così:
    Codice PHP:
    $sql="SHOW TABLES";
    require_once
    "../include/db.php";
    $db=new database;
    $db->prepare_query($sql);
    $query=$db->query();
    $result=mysqli_fetch_assoc($query);
    ma mi da questo errore:
    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given
    Ultima modifica di alemoppo : 18-03-2013 alle ore 15.50.05 Motivo: +tag [php]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •