prepared statements فى adobe AIR

By mostafa farghaly

السلام عليكم و رحمه الله تعالى و بركاته

عند تعاملك مع ال api الخاصه ب SQL statement فى Adobe air فإنك سوف تلاحظ الخاصيه parameters فى الكائن SQLStatement و هى الخاصيه التى تمكنك من إستخدام prepared statements و الكود التالى يوضح عدم إستخدامه :

var select = new air.SQLStatement();

var uid=document.getElementById(”uid”).value;

select.text=”SELECT * FROM users WHERE u-id = ‘ ” + uid +” ‘ “;

select.execute();

أما الكود التالى يوضح كيفيه إستخدام prepared statements يمكنك المقارنه بينهما

var select = new air.SQLStatement();

var uid=document.getElementById(”uid”).value;

select.text=”SELECT * FROM users WHERE u-id = @uid”;

select.parameters["@uid"] = uid;

select.execute();

لابد أنك لاحظت @uid فى جمله ال SQL فى المثال التانى و هى عباره عن حاويه للقيمه التى تحفظها الخاصيه parameter بنفس الإسم و يمكنك أيضا إستخدام علامه الإستفهام فى جمله SQL للإشاره إلى ال prepared statements كما يلى

select.text=”SELECT * FROM users WHERE u-id = ? and u-name = ?”;

select.parameters[0] = uid;

select.parameters[1] = uname;

select.execute();

فى هذه الحاله تم الإشاره إلى prepared statements فى جمله ال SQL بعلامه إستفهام ؟ و تم إعطائها قيمه من خلال خاصيه parameters و لكن فى هذه الحاله عباره عن مصفوفه مرتبه رقميا .

ما هى فوائد prepared statements ?

تمنع هجمات SQL injection حيث انها تعتبر جزء مفصول تماما عن جمله ال SQL حيث ان الجمله تعرب اولا فى محرك الترجمه الخاص ب SQL ثم يقوم بإدراج القيم ، و بما إنها تعرب الجمل أولا فإنها تعربها مره واحده فقط عندما تستخدم اكتر من مره مع قيم مختلفه و بذلك تزيد الكفاءه فى حاله استخدا جمل SQL كبيره و معقده و فى نفس الوقت يسهل عليك فهم الجمل لأنك تقوم بالإشاره إلى مصادر القيم بأسماء مفهومه .

متى أستخدم prepared statements ?

إستخدمها عند تنفيذ جمله ال SQL اكثر من مره و لكن بقيم اخرى عديده داخل loop او غيره ، ولا تستخدمها اذا كانت الجمله تستخدم مره واحد فقط :)

الأوسمة: , , , ,

اترك رد