PHP Notice: Trying to get property of non-object in …
กรณีตัวอย่างที่เกิด PHP notice in error_log ดังนี้
PHP Notice: Trying to get property of non-object in /home3/apps/includes/function.php on line 353
เข้าไปดูในไฟล์ function.php บรรทัดที่ 353 พบว่าเป็นฟังก์ชันสั้นๆดังนี้
function getAppFolder($APPID) { $SQL=”select app_folder from “.db_pre.”apps where appid=’$APPID'”; $QUERY=mysql_query($SQL); $res=mysql_fetch_object($QUERY)->app_folder; return $res; } |
บรรทัดนี้เป็นการรับค่าจากการค้นหาข้อมูลในฐานข้อมูล โดยมีการเรียกใช้ where appid=’$APPID’
สาเหตุ
ปัญหาเกิดขึ้นเมื่อมีการส่งค่า $APPID เข้ามาแล้วค้นหาค่า app_folder ไม่ได้ เช่น $APPID ไม่มีค่า หรือไม่มีค่า $APPID ในฐานข้อมูล
แนวทางการแก้ไข
1. ก่อนเรียกใช้ฟังก์ชันนี้ให้ตรวจสอบค่าตัวแปร $APPID ว่าไม่เป็นค่าว่างเสียก่อน
2. อาจทำการปรับปรุงฟังก์ชัน โดยการตรวจสอบผลการรัน $SQL ถ้า error ก็ return ค่าอีกแบบ หรือ return เป็นค่า boolean true or false ก็ได้ เช่น
function getAppFolder($APPID) { $SQL=”select app_folder from “.db_pre.”apps where appid=’$APPID'”; $QUERY=mysql_query($SQL); if ($QUERY) { return $res; } |