سؤال

هل يمكن لأي شخص أن يعطيني أمثلة حول كيفية استخدام الاستعلامات المعلمة مع MySQL / PHP من فضلك؟

هل كانت مفيدة؟

المحلول

الاستعلام المعلمات هو في الأساس استعلام يلتقط جميع الإدخال. هذا له العديد من الآثار الجانبية الجيدة، مثل صنع جميع المدخلات غير ضارة (أي عدم وجود حقن ضارة ممكنة) واتخذها بشكل أسرع عند استخدامها بشكل متكرر، لأنه يتم تحديده مسبقا وتجميعه، لذلك يعرف المحرك كيفية تطبيق المدخلات المقدمة. مثال في MySQL النقي هو:

PREPARE qry FROM "INSERT INTO tbl VALUES (?)";

يتم تجميع البيان الآن ومخزنة مؤقتا، ويمكن تنفيذها بشكل متكرر دون الحاجة إلى إعادة ترجمة وتفسيرها:

SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;

عند استخدامها في PHP، عادة ما يكون مثل هذا (تقصير):

$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));

نصائح أخرى

PREPARE stmt_name FROM "SELECT name FROM Country WHERE code = ?";

SET @test_parm = "FIN";

EXECUTE stmt_name USING @test_parm;

مصدر: MySQL DEV: إعداد البيانات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top