Node.js MySQL Wo


Wählen Sie Mit einem Filter aus

Wenn Sie Datensätze aus einer Tabelle auswählen, können Sie die Auswahl filtern, indem Sie die "WHERE"-Anweisung verwenden:

Beispiel

Datensatz(e) mit der Adresse „Park Lane 38“ auswählen:

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

Speichern Sie den obigen Code in einer Datei namens "demo_db_where.js" und führen Sie die Datei aus:

Führen Sie "demo_db_where.js" aus

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

Was Ihnen dieses Ergebnis geben wird:

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


Platzhalterzeichen

Sie können auch die Datensätze auswählen, die mit einem bestimmten Buchstaben oder Satz beginnen, enthalten oder enden.

Verwenden Sie den Platzhalter „%“, um null, ein oder mehrere Zeichen darzustellen:

Beispiel

Wählen Sie Datensätze aus, bei denen die Adresse mit dem Buchstaben „S“ beginnt:

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

Speichern Sie den obigen Code in einer Datei namens "demo_db_where_s.js" und führen Sie die Datei aus:

Führen Sie "demo_db_where_s.js" aus

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

Was Ihnen dieses Ergebnis geben wird:

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

Abfragewerte maskieren

Wenn Abfragewerte vom Benutzer bereitgestellte Variablen sind, sollten Sie die Werte maskieren.

Dies dient dazu, SQL-Injections zu verhindern, bei denen es sich um eine gängige Web-Hacking-Technik handelt, mit der Ihre Datenbank zerstört oder missbraucht wird.

Das MySQL-Modul hat Methoden, um Abfragewerte zu maskieren:

Beispiel

Maskieren Sie Abfragewerte mit der mysql.escape() Methode:

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

Sie können auch a ?als Platzhalter für die Werte verwenden, die Sie maskieren möchten.

In diesem Fall wird die Variable als zweiter Parameter in der Methode query() gesendet:

Beispiel

Maskieren Sie Abfragewerte mit der Platzhaltermethode ? :

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

Wenn Sie mehrere Platzhalter haben, enthält das Array mehrere Werte in dieser Reihenfolge:

Beispiel

Mehrere Platzhalter:

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