Sobes.tech
Middle

SQL-də parametrlərin siyahıya alınması üçün hansı üsullar mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

SQL sorğularında parametrləri siyahıya almağın bir neçə yolu var, bunlar SQL inyeksiyalarını qarşısını almağa və oxunaqlılığı yaxşılaşdırmağa kömək edir:

  1. Pozisiyalı parametrlər: Parametrlər yer tutucu ilə (tez-tez ? və ya $N) müəyyən edilir və sorğunu icra edən funksiyaya müəyyən ardıcıllıqla ötürülür.

    SELECT * FROM users WHERE id = ? AND status = ?;  
    

    İcrada: parametrlər eyni ardıcıllıqla massiv və ya siyahı kimi ötürülür, sual işarələrinin ardıcıllığı vacibdir.

  2. Adlandırılmış parametrlər: Parametrlər prefiks ilə (tez-tez : və ya @) müəyyən edilir və parametr adı ilə davam edir.

    SELECT * FROM products WHERE category = :category_name AND price > :min_price;  
    

    İcrada: parametrlər sözlük və ya xəritə kimi ötürülür, burada açar parametr adıdır və dəyər onun qiymətidir.

  3. Birləşdirilmiş parametrlər (bəzi SGBD və ORM): Məlumat strukturlarını və ya obyektləri tək parametr kimi ötürməyə imkan verir. Bu daha az ümumidir və xüsusi tətbiqdən asılıdır. Məsələn, PostgreSQL-də JSON istifadə edilə bilər.

    SELECT * FROM orders WHERE details @> ?;  -- details JSONB tipli sahədir
    

    İcrada: JSON sətiri və ya obyekti ötürülür, hansı ki, SGBD tərəfindən təhlil edilə bilər.

Yöntəm seçimi istifadə olunan SGBD, sürücü/ORM və şəxsi üstünlüklərə bağlıdır. Ən çox istifadə olunanlar pozisiyalı və adlandırılmış parametrlərdir. Parametrli sorğuların istifadəsi təhlükəsiz işləmək üçün standart praktika hesab olunur.