با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش Node.js در خدمت شما دوستان هستیم. در این جلسه قصد داریم به آموزش فیلتر کردن اطلاعات MySQL با Node.js و دستور WHERE در MySQL بپردازیم.
هنگام انتخاب رکورد ها از جدول، میتوانیم آنها را با استفاده از دستور WHERE در MySQL ، فیلتر کنیم.
در مثال زیر رکورد یا رکورد هایی با فیلد address برابر با “Park Lane 38” را انتخاب می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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’} ] |
می توانید رکورد های را انتخاب کنید که با عبارت یا حروفی که ما به آن داده ایم، شروع شود یا شامل آن شود و یا با آن پایان یابد.
از کاراکتر % برای این کار استفاده خواهیم کرد.
در مثال زیر رکورد هایی را انتخاب می کنیم که فیلد address آن ها با حرف “S” شروع شده باشند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 |
خروجی:
[ { id: 8, name: ‘Richard’, address: ‘Sky st 331’}, { id: 14, name: ‘Viola’, address: ‘Sideway 1633’} ] |
هنگامی که مقادیر کوئری توسط کاربر تهیه می شوند، باید مراقب آن ها بود و آن ها را به اصطلاح escape کرد.
این کار از SQL Injection که رایج ترین تکنیک هک وب برای نابودی یا سوءاستفاده از دیتابیس شما است، جلوگیری می کند.
ماژول mysql متدی برای escape کردن مقادیر دارد که به صورت زیر می توانیم از آن استفاده کنیم:
1 2 3 4 5 6 | 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); }); |
همچنین می توانیم از یک علامت سوال ؟ به عنوان یک نگهدارنده برای escape کردن مقادیر استفاده کنیم.
در این مورد مقدار مورد نظر به عناون پارامتر دوم به تابع ()query ارسال می شود:
1 2 3 4 5 6 | 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); }); |
در ضورت استفاده از چند مقدار به صورت زیر عمل می کنیم:
1 2 3 4 5 6 7 | 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); }); |
جلسه آموزش فیلتر کردن اطلاعات MySQL با Node.js و دستور WHERE در MySQL نیز به پایان رسید.
در جلسه بعد به آموزش مرتب سازی اطلاعات در MySQL با Node.js خواهیم پرداخت. با ما همراه باشید.