קבלת נתונים מטבלת postgresql בשאילתת JOIN (שפה php)
-
אני מקבל את הנתונים מה-postgresql באמצעות הפונקציה pg_fetch_array שמתרגם את כותרות העמודה בטבלה למפתח במערך, ואני מקבל את הערכים כשאני קורא ככה למפתחות.
$row["id"]
הבעיה מתחילה כשהשאילתה היא עם JOIN ויש שדות בשמות כפולים. ואז הוא מחזיר את השדות עם השמות הכפולים ב-null או רק לפי מיקום.
לדוגמא (חלקית כי קיצרתי במערך) השדה id חזר null:
{"0":"60","id":null,"1":"2019-05-12 21:26:30","cretaing_date":null,"2":"tktqrk309ggeuessptqrl96au3","phpsessid":"tktqrk309ggeuessptqrl96au3"}
מה הפתרון?
-
מעניין שpostgresql לא עושה שגיאה בjoin עם שדות כפולים.
בmysql ובsql server זה עושה שגיאה וחייבים לתת להם שמות אלטרנטיביים במשפט הsql ע"י AS.
באינטרנט אני רואה שעושים תחילית לשדות לפי הטבלה ממנה זה מגיע, או ידני ע"י ציון כל השדות עם שם הטבלה נקודה שם השדה, או עם גורף עם שם הטבלה נקודה כוכבית.
https://www.postgresql.org/docs/10/tutorial-join.html
https://stackoverflow.com/q/13153344/1271037