php / php/php-src

SQLite3Result::fetchArray Doesn't Handle Join Statement Properly

Offen
#20,300 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Extension: sqlite3 Feature
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der verlinkten Handbuchseite zu SQLite3Result::fetchArray und reproduziere die gemeldete SELECT * JOIN-Abfrage anhand der beiden Beispielt Tabellen. Ermittle, wie doppelte Spaltennamen behandelt werden sollen, und bestätige die akzeptierte Ergebnisform, bevor du das Verhalten änderst oder testest.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php, sqlite
Bereich
database
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.