آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش فیلتر اطلاعات (where) در Node.js MySQL

دوره های مرتبط با این مقاله

آموزش فیلتر اطلاعات (where) در Node.js و MySQL :

هنگام انتخاب اطلاعات (SELECT) از یک جدول (Table) در MySQL می توانید با به کار بردن عبارت WHERE اطلاعات خروجی را فیلتر کرده و فقط اطلاعات مورد نظرتان را نمایش دهید.
مثال عملی : در کد مثال زیر، اطلاعات تمامی فیلدهای رکوردهایی از جدول Customers را در خروجی نمایش داده ایم که مقدار فیلد address آن ها برابر با Park Lane38 است. شرط لازم جهت فیلتر شدن اطلاعات را در مقابل کلمه کلیدی WHERE قید کرده ایم :

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers WHERE address = 'Park Lane 38'", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});
            

کد مثال فوق را در فایل "demo_db_where.js" ذخیره کرده و با دستور زیر، آن را اجرا نمایید :

C:\Users\Your Name>node demo_db_where.js
            

برنامه پس از فیلتر کردن اطلاعات هدف، خروجی زیر را نمایش می دهد :

[
  { id: 11, name: 'Ben', address: 'Park Lane 38'}
]
            

آموزش محدودکردن بیشتر نتایج جستجو با عبارات خاص در MySQL WHERE:

می توانید با به کار بردن عبارت خاص (Wildcord phrase) و کلمه کلیدی LIKE نتایج در دستور WHERE را محدودتر نیز نمایید.
برای مثال، بخواهید اطلاعات رکوردهایی نمایش داده شود که مقدار یک فیلد آن ها، با کاراکتر خاصی شروع شده، شامل حروف خاصی بوده و یا با حرف خاصی خاتمه می یابند.
برای این منظور از کلمه کلیدی LIKE و کاراکتر % استفاده می شود، به مثال عملی دقت نمایید.
مثال عملی : در کد مثال عملی زیر، از برنامه خواسته ایم فقط اطلاعات رکوردهایی از جدول Customers را نشان دهد که مقدار فیلد address آن ها با حرف “s” شروع می شود :

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers WHERE address LIKE 'S%'", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});
            

کد فوق را در فایل "demo_db_where_s.js" ذخیره کرده و با دستور زیر آن را اجرا نمایید :

C:\Users\Your Name>node demo_db_where_s.js
            

Node.js پس از اجرای دستور فوق، رکوردهای متناظر با شرط جستجو را نشان می دهد :

[
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'}
]
            

آموزش آنالیز اطلاعات دریافتی از کاربران در MySQL با Node.js :

هنگامی که اطلاعات جهت Query و جستجو در عبارت WHERE توسط کاربران وارد می شود، بایستی این ورودی را پایش کرده تا حاوی کدهای مخرب نباشند. به این عمل در Node.js MySQL فرار یا Escape اطلاعات می گویند.
آنالیز و چک کردن اطلاعات ورودی در MySQL باعث جلوگیری از حملات اسکریپتی SQL Injection شده که یکی از روش های رایج هک وب سایت ها و تخریب یا سرقت اطلاعات دیتابیس است.
در چهارچوب کاری Node.js برای آنالیز اطلاعات ورودی به پایگاه داده MySQL از متد escape() استفاده می شود.
مثال عملی : در کد مثال عملی زیر، شرط جستجو در عبارت WHERE توسط متغیر adr از کاربر دریافت شده است اما به جای ارسال مستقیم مقدار وارد شده به دستور SQL بایستی ابتدا اطلاعات توسط متد escape() چک شده تا حاوی کدهای مخرب نباشند، سپس دستور جستجو اجرا شده و نتایج در خروجی نشان داده می شوند :

var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ' + mysql.escape(adr);
con.query(sql, function (err, result) {
  if (err) throw err;
  console.log(result);
});
            

خروجی کد مثال فوق به صورت زیر خواهد بود :

[
  { id: 4, name: 'Hannah', address: 'Mountain 21'}
]
            

می توانید به جای اطلاعاتی که می خواهید در دستور SQL چک شوند، علامت ؟ قرار داده و سپس در متد query اطلاعات را به تابع پاس دهید. در این وضعیت، متغیر داده ای حاوی شرط جستجو، به عنوان پارامتر دوم به متد query() ارسال خواهد شد.
مثال عملی : در کد مثال عملی زیر نیز قرار است شرط جستجو توسط متغیر adr توسط کاربر تعیین شود. به جای قرار دادن مستقیم اطلاعات ورودی در دستور SQL که ممکن است خطرناک باشد، علامت؟ قرار داده شده و سپس متغیر adr به عنوان پارامتر دوم به متد query ارسال شده است :

var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ?';
con.query(sql, [adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});
            

خروجی کد مثال فوق به صورت زیر خواهد بود :

[
  { id: 4, name: 'Hannah', address: 'Mountain 21'}
]
            

اگر می خواهید مقدار بیش از یک فیلد در شرط جستجو قرار داده شوند، بایستی آن ها را همانند کد زیر، به ترتیب تعیین کرده و سپس مقادیر متغیرها را به صورت پارامتر به متد query() انتقال دهید.
مثال عملی : در کد مثال عملی زیر،مقادیر لازم جهت شرط جستجو در فیلدهای name و adr تعیین شده اند. سپس در دستور SQL به ازای هر فیلد یک ؟ به کار برده و در مرحله آخر، اطلاعات این دو متغیر را به صورت پارامتر به متد query() پاس داده ایم :

var name = 'Amy';
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE name = ? OR address = ?';
con.query(sql, [name, adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});
            

خروجی کد مثال فوق به صورت زیر خواهد بود :

[
  { id: 3, name: 'Amy', address: 'Apple st 652'}
  { id: 4, name: 'Hannah', address: 'Mountain 21'}
]
            
  • 70
  •    0
  • تاریخ ارسال :   1398/05/01

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .