-
Delete cu Node.js in MySQL
Metoda query() a modulului "mysql" poate efectua interogari SQL care actualizeaza (Update) si sterg (Delete) inregistrari in tabelul mysql.
Pentru a evita "SQL injection", este indicat sa filtrati datele furnizate de utilizator inainte de a le folosi in interiorul unei interogari SQL. Puteti face acest lucru folosind metoda mysql.escape().
Alternativ, puteti folosi caractere '?' ca inlocuitori pentru valorile pe care doriti sa le filtrati, apoi adaugati valorile intr-un array ca al doilea argument a metodei query() (in aceeasi ordine ca si inlocuitorii '?' din interogarea sql).
Update cu Node.js in MySQL
Puteti actualiza inregistrari existente intr-un tabel MySQL folosind instructiunea "UPDATE".
Pentru a obtine numarul de randuri afectate/actualizate, se foloseste proprietatea
affectedRows a obiectului rezultat.
- In acest exemplu vom actualiza datele din coloana "address" din randul cu id-ul 5, folosind metoda
mysql.escape() pentru a filtra datele in interogarea SQL:
const mysql = require('mysql');
const pool = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: 'pass',
database: 'nodedb',
charset: 'utf8'
});
//update with escape()
var adr ='Happy 12';
var id =5;
let sql ='UPDATE friends SET address ='+ mysql.escape(adr) +' WHERE id ='+ mysql.escape(id);
pool.getConnection((err, con)=>{
if(err) throw err;
con.query(sql, (err, res)=>{
if(err) throw err;
con.release(); //release the connection
console.log('Record(s) updated: '+ res.affectedRows);
});
});
- In urmatorul cod se folosesc inlocuitori '?' in instructiunea Update:
const mysql = require('mysql');
const pool = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: 'pass',
database: 'nodedb',
charset: 'utf8'
});
//update using placeholders
let sql ='UPDATE friends SET address =? WHERE id =?';
var placeh =['Happy 12', 5]; //values for placeholders
pool.getConnection((err, con)=>{
if(err) throw err;
con.query(sql, placeh, (err, res)=>{
if(err) throw err;
con.release(); //release the connection
console.log('Record(s) updated: '+ res.affectedRows);
});
});
- O alta metoda cu inlocuitori '?', adaugarea numelor coloanelor si a valorilor intr-un obiect:
const mysql = require('mysql');
const pool = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: 'pass',
database: 'nodedb',
charset: 'utf8'
});
//update using placeholders
let sql ='UPDATE friends SET ? WHERE ?';
var adr ={address:'Happy 12'};
var id ={id:5};
pool.getConnection((err, con)=>{
if(err) throw err;
con.query(sql, [adr, id], (err, res)=>{
if(err) throw err;
con.release(); //release the connection
console.log('Record(s) updated: '+ res.affectedRows);
});
});
Resultat:
Record(s) updated: 1
Delete cu Node.js in MySQL
Puteti sterge inregistrari dintr-un tabel MySQL folosind instructiunea "DELETE FROM".
Pentru a obtine numarul randurilor afectate/sterse, se foloseste proprietatea
affectedRows a obiectului resultat.
const mysql = require('mysql');
const pool = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: 'pass',
database: 'nodedb',
charset: 'utf8'
});
//deleted with placeholders
let sql ='DELETE FROM friends WHERE id =? OR name =?';
var id =2;
var name='Olpram';
pool.getConnection((err, con)=>{
if(err) throw err;
con.query(sql, [id, name], (err, res)=>{
if(err) throw err;
con.release(); //release the connection
console.log('Rows deleted: '+ res.affectedRows);
});
});
Resultat:
Rows deleted: 2