البرمجة

تحويل السلاسل الفارغة إلى NULL في إدراج MySQL باستخدام Golang

عندما تقوم بإدراج بيانات في قاعدة البيانات MySQL باستخدام Golang، وترغب في إدراج قيمة NULL بدلاً من السلسلة الفارغة في حالة استنفاد القيمة، يمكنك استخدام قيمة الصفر للنوع المؤشر على النص الفارغ (string pointer) بدلاً من النص الفارغ ذاته. هذا الأمر يعني أنك تمرر nil بدلاً من السلسلة الفارغة.

في الكود الذي قدمته، يبدو أنك تستخدم المتغير ve.EventInfo كقيمة لعمود info في قاعدة البيانات. لتحقيق ما تريد، يمكنك التحقق من قيمة ve.EventInfo، وإذا كانت فارغة، قم بتمرير nil بدلاً من السلسلة الفارغة. هذا سيؤدي إلى إدراج قيمة NULL في قاعدة البيانات.

إليك كيف يمكن تعديل الكود لتحقيق هذا:

go
var info *string if ve.EventInfo == "" { info = nil } else { info = &ve.EventInfo } _, err := m.Db.Exec(`INSERT INTO visitor_events (type, info, url_path, visitor_id, created_at, domain) VALUES (?, ?, ?, ?, ?, ?)`, m.SaveEventType(ve), info, m.SaveURLPath(ve.UrlPath), ve.VisitorId, time.Now().UTC(), ve.Domain)

بهذا التعديل، سيتم تمرير nil إلى العمود info في حالة كانت القيمة فارغة، مما ينتج عنه إدراج قيمة NULL في قاعدة البيانات بدلاً من السلسلة الفارغة.

المزيد من المعلومات

بالطبع، دعني أواصل المقال لشرح الطريقة التي يمكن بها تعديل الكود ليتمكن من إدراج قيم NULL بشكل أكثر عمومية، بحيث يمكن تطبيقها على جميع الحالات التي تتطلب إدراج NULL بدلاً من القيم الفارغة.

يمكننا تحسين الكود بواسطة استخدام وظيفة مساعدة للتحقق من القيم الفارغة وتحويلها إلى مؤشرات نص، وذلك لجعل الكود أكثر وضوحًا وإعادة استخدامًا. هذه الوظيفة ستأخذ قيمة النص كمعامل وستقوم بإرجاع مؤشر إلى النص إذا كان النص غير فارغ، وستقوم بإرجاع nil إذا كان النص فارغًا.

فيما يلي تحديث للكود يستخدم هذه الوظيفة:

go
func stringToPointer(s string) *string { if s == "" { return nil } return &s } // في مكان الكود السابق info := stringToPointer(ve.EventInfo) _, err := m.Db.Exec(`INSERT INTO visitor_events (type, info, url_path, visitor_id, created_at, domain) VALUES (?, ?, ?, ?, ?, ?)`, m.SaveEventType(ve), info, m.SaveURLPath(ve.UrlPath), ve.VisitorId, time.Now().UTC(), ve.Domain)

باستخدام هذا التحديث، يمكننا استخدام الوظيفة stringToPointer في أي مكان نرغب في تحويل السلاسل الفارغة إلى قيم NULL. هذا يجعل الكود أكثر قابلية للصيانة ويسهل فهمه لأي مطور يعمل على المشروع.

وبهذا، يتم تحقيق الهدف من تحويل القيم الفارغة إلى NULL بشكل عام ومنهجي في تطبيقك الخاص. هذا التعديل يجعل الكود أكثر مرونة ويسهل الصيانة، ويمكن أن يكون مفيدًا في حالة الرغبة في تطبيق هذا التحويل في العديد من الأماكن داخل التطبيق.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر