php / php/php-src

SQLite3Result::fetchArray Doesn't Handle Join Statement Properly

Aperta
#20,300 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Extension: sqlite3 Feature
Lingua principale
C
Stelle
40.4k
Fork
8.1k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

When i tried using ( join ) statement for fetching data , sqlite3 tend to overwrite the column name if it appears in the other table

  • eg:

table-a

ID Name Foreign_id
1 bar 2

table-b

ID Name
2 foo

When i try to join them

SELECT * FROM table-a a JOIN table-b b ON(a.foreign_id=b.id)

i get the result as follows

[
  array(
  'ID' => 2,
  'name' => 'foo',
  'foreign_id' => 2
  )
]

i suggest prefixing the columns names with the table aliases name to clarify and avoid overwriting

So the result would be like this

[
 array(
  'a.ID' => 1,
  'a.name' => 'bar',
  'a.Foreign_id' => 2,
  'b.ID' => 2,
  'b.name' => 'foo'
 )
]

thanks in advance

From manual page: https://php.net/sqlite3result.fetcharray

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dalla pagina del manuale collegata di SQLite3Result::fetchArray e riproduci la query SELECT * JOIN segnalata usando le due tabelle di esempio. Determina la gestione prevista dei nomi di colonna duplicati e conferma la forma del risultato accettata prima di modificare o testare il comportamento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
php, sqlite
Ambito
database
Tipo di issue
Bug
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.