Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Oggetto mysqli vuoto ma senza errore

    Salve a tutti, ho un problema e non ho idea di come uscirne.

    Premetto che lo script gira su ambiente WAMP, con Php v5.5 e Mysql v5.6.

    Effettuano una connesione al database attraverso
    Codice PHP:
    $conn mysqli_connect('localhost''root''''nome_db') or die('Connessione fallita'); 
    lo script non mi restituisce nessun errore, tuttavia se analizzo la variabile restituita $conn con
    Codice PHP:
    var_dump($conn); 
    mi restituisce un oggetto con tutte le proprietà nulle:
    codice:
    object(mysqli)[1]  public 'affected_rows' => null
      public 'client_info' => null
      public 'client_version' => null
      public 'connect_errno' => null
      public 'connect_error' => null
      public 'errno' => null
      public 'error' => null
      public 'error_list' => null
      public 'field_count' => null
      public 'host_info' => null
      public 'info' => null
      public 'insert_id' => null
      public 'server_info' => null
      public 'server_version' => null
      public 'stat' => null
      public 'sqlstate' => null
      public 'protocol_version' => null
      public 'thread_id' => null
      public 'warning_count' => null object(mysqli)[2]
    Se accedo alle proprietà singolarmente (o con print_r), però, queste risultano popolate. Il problema sarebbe aggirabile se avessi bisogno solamente di leggere le proprietà, ma nel caso dovessi utilizzare l'intero oggetto $conn come potrei fare?

    PS: da qualche parte ho letto che è un bug che si verificava con la versione 5.3, ma mi sembra proprio uguale a quei casi.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    In che modo dovresti usarlo? Non ti serve solo da passare come parametro alle varie mysqli_query() mysqli_fetch_assoc() e compagnia bella? Hai provato ad usarlo? Ti da problemi?

  3. #3
    Esatto, mi serve come parametro per le varie mysqli_query() ecc. Il problema è che se lo maneggio come singolo oggetto tutte le proprietà sono nulle, ma se le prendo singolarmente, ad esempio $conn->client_info, non sono affatto nulle!
    Ovviamente, in questo mysqli_query non funziona (null anche lei) e come conseguenza tutto il resto.

    Se creo un nuovo oggetto con le stesse proprietà dell'oggetto myqsli e gli assegno gli stessi valori
    Codice PHP:
    $ist = new prova();
    $ist->client_info $conn->client_info
    l'oggetto risulta avere proprietà popolate
    codice:
    object(prova[3]  public 'affected_rows' => int 0 
     public 'client_info' => string 'mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $' (length=79)  
    public 'client_version' => int 50011  
    public 'connect_errno' => int 0  
    public 'connect_error' => null  
    public 'errno' => int 0  
    public 'error' => string '' (length=0)  
    public 'error_list' =>     array (size=0)      empty  
    public 'field_count' => int 0  
    public 'host_info' => string 'localhost via TCP/IP' (length=20)
    public 'info' => null  
    public 'insert_id' => int 0  
    public 'server_info' => string '5.6.17' (length=6)  
    public 'server_version' => int 50617  
    public 'stat' => string 'Uptime: 44033  Threads: 1  Questions: 342  Slow queries: 0  Opens: 68  Flush tables: 1  Open tables: 61  Queries per second avg: 0.007' (length=134)  
    public 'sqlstate' => string '00000' (length=5)  public 'protocol_version' => int 10  
    public 'thread_id' => int 197  
    public 'warning_count' => int 0
    
    ovviamente questo trick è inutile perché mysqli_query come primo parametro vuole un oggetto mysqli, mentre questo è un oggetto prova.

    In questa discussione hanno avuto lo stesso problema http://stackoverflow.com/questions/9...object-is-null

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ho capito, ma che te ne fai di accedere direttamente all'oggetto $conn? Da qualche parte ti serve sapere cosa contiene una certa proprietà?
    Se ti serve solo da passare come parametro e così funziona, il problema dove sta?

  5. #5
    Ovviamente, in questo mysqli_query non funziona (null anche lei) e come conseguenza tutto il resto.
    Il problema è che se lo passo come parametro le funzioni non vanno

  6. #6
    Quote Originariamente inviata da sirmattia Visualizza il messaggio
    Il problema è che se lo passo come parametro le funzioni non vanno
    Posta un po' di codice.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ma nel link che hai postato c'è anche la soluzione, l'hai letta? L'hai provata?
    E' nell'ultima risposta, non in quella marcata come soluzione.

  8. #8
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Posta un po' di codice.
    Mi connetto al database

    Codice PHP:
    $conn mysqli_connect('localhost''root''''nome_db') or die('Connessione fallita'); 
    Eseguo una query

    Codice PHP:
    $resmysqli_query($conn"SELECT * FROM utenti WHERE nome='marco'"); 
    $res è un null perché $conn è un oggetto di proprietà tutte nulle e quindi non ottengo nessun risultato, però se vado a prendere singolarmente le proprietà di $conn gli oggetti risultano non vuoti. Ora il problema non si porrebbe se il mio obiettivo fosse solo quello di leggere le proprietà di $conn, ma dato che devo utilizzarlo per eseguire mysqli_query() e questa lo vuole come oggetto, il problema sorge.

    Comunque sto pensando che il problema sia relativo a qualche modulo di php per il mysql. Boh
    Ultima modifica di sirmattia; 25-08-2015 a 11:27

  9. #9
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ma nel link che hai postato c'è anche la soluzione, l'hai letta? L'hai provata?
    E' nell'ultima risposta, non in quella marcata come soluzione.
    In quella risposta usa print_r($conn, true) come soluzione ma print_r restituisce una stringa e mysqli_query() non accetta stringhe ma oggetti.

    Credo ci sia qualche errore nella configurazione di php in xamp, perché sembra assurdo ottenere un oggetto vuoto che in realtà non è vuoto

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Mi pare strano che sia un problema di configurazione di XAMPP, quella versione l'ho usata anche io e non mi pare di aver visto nulla di strano.
    Al limite installa l'unltima.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.