Node.js MySQLที่ไหน


เลือกด้วยตัวกรอง

เมื่อเลือกระเบียนจากตาราง คุณสามารถกรองส่วนที่เลือกได้โดยใช้คำสั่ง "WHERE":

ตัวอย่าง

เลือกบันทึกที่มีที่อยู่ "Park Lane 38":

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" และเรียกใช้ไฟล์:

เรียกใช้ "demo_db_where.js"

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

ซึ่งจะให้ผลลัพธ์นี้แก่คุณ:

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


อักขระตัวแทน

คุณยังสามารถเลือกเรกคอร์ดที่ขึ้นต้น รวม หรือลงท้ายด้วยตัวอักษรหรือวลีที่กำหนดได้

ใช้สัญลักษณ์แทน '%' เพื่อแสดงอักขระศูนย์ หนึ่งตัวหรือหลายตัว:

ตัวอย่าง

เลือกระเบียนที่ที่อยู่ขึ้นต้นด้วยตัวอักษร '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" และเรียกใช้ไฟล์:

เรียกใช้ "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'}
]

หนีค่าการสืบค้น

เมื่อค่าการสืบค้นเป็นตัวแปรที่ผู้ใช้กำหนด คุณควรหลีกเลี่ยงค่า

นี่คือการป้องกันการฉีด SQL ซึ่งเป็นเทคนิคการแฮ็คเว็บทั่วไปในการทำลายหรือใช้ฐานข้อมูลของคุณในทางที่ผิด

โมดูล MySQL มีวิธีการหลีกเลี่ยงค่าแบบสอบถาม:

ตัวอย่าง

หนีค่าแบบสอบถามโดยใช้mysql.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);
});

คุณยังสามารถใช้ a ?เป็นตัวยึดตำแหน่งสำหรับค่าที่คุณต้องการหลีกเลี่ยงได้

ในกรณีนี้ ตัวแปรจะถูกส่งเป็นพารามิเตอร์ตัวที่สองในเมธอด query()

ตัวอย่าง

Escape ค่าแบบสอบถามโดยใช้วิธีการยึด? :

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);
});

หากคุณมีตัวยึดตำแหน่งหลายตัว อาร์เรย์จะประกอบด้วยค่าหลายค่าตามลำดับดังนี้:

ตัวอย่าง

ตัวยึดตำแหน่งหลายตัว:

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);
});