line login ใน e-office ไม่สำเร็จ ติดปัญหาท่อนเรียก Callback

line login ใน e-office ไม่สำเร็จ ติดปัญหาท่อนเรียก Callback
ผมทดสอบบน xampp สามารถ login line ได้ปกติ แต่พอเอาขึ้น cwp กลับเจอปัญหาค้างที่หน้า callback
จึงทำการเปิด debug mode พบ Error ดังนี้
"Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1364 Field 'code' doesn't have a default value in /home/eoffice/public_html/Kotchasan/Database/PdoMysqlDriver.php:125 Stack trace: #0 /home/eoffice/public_html/Kotchasan/Database/PdoMysqlDriver.php(125): PDOStatement->execute() #1 /home/eoffice/public_html/modules/index/models/register.php(243): Kotchasan\Database\PdoMysqlDriver->insert() #2 /home/eoffice/public_html/modules/index/models/linelogin.php(65): Index\Register\Model::execute() #3 /home/eoffice/public_html/modules/index/controllers/linecallback.php(58): Index\Linelogin\Model::chklogin() #4 /home/eoffice/public_html/Kotchasan/Router.php(70): Index\Linecallback\Controller->index() #5 /home/eoffice/public_html/Kotchasan/Kotchasan.php(76): Kotchasan\Router->init() #6 /home/eoffice/public_html/line/callback.php(18): Kotchasan->run() #7 {main} Next Exception: SQLSTATE[HY000]: General error: 1364 Field 'code' doesn't have a default value in /home/eoffice/public_html/Kotchasan/Database/PdoMysqlDriver.p in /home/eoffice/public_html/Kotchasan/Database/PdoMysqlDriver.php on line 130"
ไม่ทราบว่าต้องแก้ไขอย่างไรครับ
29 พ.ย. 2566 6 457

อัพเดทเพิ่มเติมครับ ผมลองเพิ่มสมาชิกด้วยตัวเอง ปรากฎว่าไม่สามารถเพิ่มสมาชิกได้ ข้อมูลส่วนอื่นเพิ่มข้อมูลได้ปกติ เช่น เพิ่มแผนก เพิ่ม ID Line สำหรับแจ้งเตือน เป็นต้น ติดปัญหาแค่ท่อนเพิ่มสมาชิก
#1

Field 'code' doesn't have a default value หมายถึงคอลัมน์นี้ไม่มีค่าเริ่มต้นครับ ทางแก้ไขมี 2 วิธี
1. ไปใส่ default value ให้คอลัมน์ที่เป็นปัญหา ถ้าตามที่แนบมาคือ คอลัมน์ code โค้ดครับ จะให้เป็น string ว่าง หรือ NULL ก็ได้
2. ปรับค่า SQL_MODE ของ Database ให้เป็นค่าว่าง วิธีหาเอาในเว็บนี้ละครับ หรือไม่ก็ Google เลย จริงๆมันมีอีกวิธีแต่ไม่แนะนำ คือสามารถตั้งค่านี้ได้ที่ load.php มีคำอธิบายเรื่องนี้อยู่ที่กระทู้ปักหมุดครับ
ไม่สามารถเพิ่มสมาชิกได้
อันนี้น่าจะเรื่องใหญ่หน่อย ปกติจะเจออาการนี้ถ้าใช้ MySQL8 เป็นฐานข้อมูลครับ เนื่องจาก MySQL8 มันไม่เพิ่ม AUTO_INCREMENT ให้อัตโนมัติ ผมแนะนำให้ใช้ MariaDB แทน เป็นการสัณณิษฐานเบื้องต้นนะครับ แนะนำให้ดูจาก Error ที่ได้รับก่อน เพราะมันมีความเป็นไปได้ว่าจะเกี่ยวข้องกับย่อหน้าแรกเหมือนกัน ลองแก้ไขตรงนั้นก่อน
#2

ทำการทดสอบและแก้ไขดังนี้นะครับ ผลคือยังไม่สามารถเพิ่มสมาชิกได้
1. ติดตั้งบน CWP PHP7.1.1 , MariaDB 10.2.40
2. ติดตั้งบน CWP PHP 7.4.29 , MariaDB 10.2.43
3. ติดตั้งบน iis + Mysql 8.0.35 + php 7.3.27
4. ติดตั้งบน iis + Mysql 5.7.44 + php 7.3.27
ทั้งหมดทดสอบโดยเป็นการติดตั้งใหม่ สร้างฐานข้อมูลใหม่
ปัญหาเหมือนกันคือไม่สามารถเพิ่มสมาชิกได้
- ทดสอบเพิ่มสมาชิกโดยตรงใน Database สามารถเพิ่มได้
- ตั้งค่า Default Filed 'Code' เป็น Null แล้ว

ตอนนี้ยังไม่สามารถเพิ่มสมาชิกได้ครับ
#3

ลองปรับ DEBUG ให้เป็น 2 ดูก่อนครับ เพื่อให้ระบบแสดงข้อผิดพลาดได้ สามารถดู error ได้จากหน้าเว็บ หรือ console ของ Browser ถ้ามี error เอามาดูครับ error เท่านั้นที่จะตอบคำถามได้ (ถ้าไม่ได้ตั้งค่าอะไรผิดพลาด)

อีกอันคือ 2. ปรับค่า SQL_MODE ของ Database ให้เป็นค่าว่าง อันนี้ก็เจอบ่อยครับ

ทั้งหมดมีอธิบายอยู่ที่กระทู้ปักหมุดครับ ลองอ่านดูก่อนก็ได้ครับ

มากกว่านี้ คือให้ผมเข้าไปดูให้แล้วแหละ ซึ่งต้องส่งข้อมูล FTP และข้อมูลที่เกี่ยวข้อง "ทั้งหมด" มาให้ผมครับ
#4

อัพเดทครับ ตอนนี้สามารถเพิ่มสมาชิก + login ด้วย line ได้แล้วนะครับ
ต้องไปปรับ Filed 'Code' และ 'birthday' ให้เป็น Default = NULL
#5

อ้างอิงจาก ความคิดเห็น #5อัพเดทครับ ตอนนี้สามารถเพิ่มสมาชิก + login ด้วย line ได้แล้วนะครับ
ต้องไปปรับ Filed 'Code' และ 'birthday' ให้เป็น Default = NULL

ขอบคุณครับ จริงๆผมก็เพิ่งอัปเดท 2 รายการนี้ไปวันสองวันนี้เหมือนกันครับ
#6
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg, png ขนาดไฟล์ไม่เกิน 2M