2013-02-07 18 views
5

Ho il seguente blocco di codice che dovrebbe restituire il countTrattare con parentesi in Codeigniter query

$sql = "SELECT sum(count) as count 
      FROM multipleowners WHERE owner = ? " . $localityquery; 
    $queryarray = array($owner, $locality); 
    $query = $this->db->query($sql, $queryarray); 
    if ($query->num_rows() > 0) 
    { 
     $result = $query->row_array(); 
     $count = $result['count']; 
    } 

Ma io sono sempre valori vuoti quando si tenta di stampare $count.

ho usato print_r($this->db->last_query()); ed ho ottenuto la seguente query,

SELECT sum(count) as count FROM multipleowners WHERE owner = 'Davenports Harbour Trustee (2012) Limited' and locality = 'Auckland Central' 

Quando ho eseguito questa domanda direttamente sul mio PostgresqlIDE ho ottenuto l'output di count come 2.

Cosa e dove potrebbe essere andata a finire questa query? Dubito dell'esistenza di ( e ) nella clausola WHERE. Come posso risolvere questo?

Aggiornamento

Quando ho attivato il profiler ho ricevuto la seguente query,

SELECT sum(count) as count 
      FROM multipleowners WHERE owner = 'Davenports Harbour Trustee (2012) Limited' and locality = 'Auckland Central' 

Così, ovviamente, il problema esiste sul ( e ) !!

+0

il profiler non è al suo meglio in questo caso. Provare a eseguire la query da uno sql prompt dei comandi e vedere se le parentesi danno ancora dolore, dubito che lo facciano. – wallyk

+0

No, ho provato a eseguire la query su 'IDE' mettere. – Deepak

+0

Ho provato a eseguire la query senza utilizzare il binding di query e ho ottenuto l'output corretto. In tal modo si conferma che il problema è con la query che viene codificata. – Deepak

risposta

2

Bingo !! ho aggiunto la seguente linea prima che ho passato la variabile $owner alla query e ha funzionato,

$owner = html_entity_decode($owner); 
+0

Allora è meglio che tu accetti la tua risposta;) –

+0

Posso accettare solo dopo un'attesa di 2 giorni :) – Deepak

0

Hai provato a fare somma selezionare (db. [Count] come icount perché nel conteggio lingua potrebbe essere una parola riservata pure. Così tra parentesi il campo o rinominarlo, cercare di non nominare la nuova uscita come conteggio ..

+0

Questo non è sicuramente il problema qui. Grazie per i suggerimenti però !! – Deepak