Curs Javascript

- Adaugare date in tabel
- Adaugare mai multe randuri

Creare tabel

Pentru a crea un tabel in MySQL, se utilizeaza instructiunea "CREATE TABLE".
Cand creezi conexiunea adauga proprietatea "database" in metoda mysql.createConnection() cu numele bazei de date.
- In acest exemplu vom crea un tabel "friends" in baza de date mysql "nodedb:
const mysql = require('mysql');

const con = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'pass',
  database: 'nodedb',
  charset: 'utf8' //encoding charset
});

let sql ='CREATE TABLE IF NOT EXISTS friends (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, address VARCHAR(255))';
  
con.query(sql, (err, res)=>{
  if(err) throw err;
  console.log('Table created.', res);

  con.end(err=>{
    if(err) throw err;
    console.log('Connection is terminated.');
  });
});
Salveaza codul de mai sus intr-un fisier numit "mysql_create_table.js" si ruleaza fisierul:
node test/mysql_create_table.js

Adaugare date in tabel

Pentru a introduce date in tabelul MySQL, se foloseste interogare SQL "INSERT INTO".
Pentru a evita "SQL injection", ar trebui sa filtrati datele furnizate de utilizator inainte de a le utiliza in interiorul unei interogari SQL. Pentru aceasta se foloseste metoda mysql.escape().
Alternativ, puteti utiliza caracterele ? ca substituenti pentru valorile care le doriti filtrate, si adaugati valorile intr-un array ca al doilea argument al metodei query() (in aceeasi ordine ca si substituentii '?' din interogarea sql).
- Exemplu cu escape(), introduce un rand cu valori pentru campurile name si address.
const mysql = require('mysql');

const con = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'pass',
  database: 'nodedb',
  charset: 'utf8' //encoding charset
});

var name ='Olpram';
var adr ='Heaven, Peace 0';
let sql ='INSERT INTO friends (name, address) VALUES ('+ mysql.escape(name) +', '+ mysql.escape(adr) +')';

con.query(sql, (err, res)=>{
  if(err) throw err;
  console.log(res);

  con.end(err=>{
    if(err) throw err;
    console.log('Connection is terminated');
  });
});
- Sau, aceeasi instructiune INSERT, cu substituenti '?':
const mysql = require('mysql');

const con = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'pass',
  database: 'nodedb',
  charset: 'utf8' //encoding charset
});

var name ='Olpram';
var adr ='Heaven, Peace 0';
let sql ='INSERT INTO friends (name, address) VALUES (?, ?)';

con.query(sql, [name, adr], (err, res)=>{
  if(err) throw err;
  console.log(res);

  con.end(err=>{
    if(err) throw err;
    console.log('Connection is terminated');
  });
});
Salveaza codul de mai sus intr-un fisier numit "mysql_insert.js" si ruleaza fisierul:
node test/mysql_insert.js
Va da acest rezultat, un obiect cu informatii despre interogarea efectatuata:
{
  fieldCount: 0,
  affectedRows: 1,
  insertId: 1,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}
Connection is terminated.
- Pentru tabele cu camp "id" AUTO_INCREMENT, poti obtine id-ul randului adaugat apeland proprietatea "insertId" a obiectului rezultat.
console.log('1 record inserted, ID: '+ res.insertId);

Adaugare mai multe randuri

Pentru a introduce mai multe randuri cu aceeasi instructiune SQL, creaza un array cu valorile ce trebuie adaugate si pune caracterul '?' in sql, care va fi inlocuit cu acel array:
let sql ='INSERT INTO friends (name, address) VALUES ?';
let values =[
  ['a', 'b'],
  ['a2', 'b2'],
  //...
];
Adauga array-ul cu valori intr-un alt array ca al doilea argument in functia con.query():
con.query(sql, [values], (err, res)=>{});

- Cand sunt introduse mai multe randuri, valoarea res.insertId contine id-ul AUTO_INCREMENT al primului rand introdus.
In acest caz, pentru a obtine id-ul AUTO_INCREMENT al ultimului rand introdus, foloseste:
var last_id = res.insertId + res.affectedRows -1;
- Proprietatea res.affectedRows contine numarul de randuri introduse.
Exemplu:
const mysql = require('mysql');

const con = mysql.createConnection({
  host: '127.0.0.1',
  user: 'root',
  password: 'pass',
  database: 'nodedb',
  charset: 'utf8' //encoding charset
});

let sql ='INSERT INTO friends (name, address) VALUES ?';
let values = [
  ['Xela', 'Good 71'],
  ['Rotciv', 'Helpful 4'],
  ['Noi', 'Loving st 652'],
  ['Anilehgna', 'Blessing 21']
];

con.query(sql, [values], (err, res)=>{
  if(err) throw err;
  var last_id = res.insertId + res.affectedRows -1;
  console.log('Number of records inserted: '+ res.affectedRows +'\n Id of first  inserted row: '+ res.insertId +'\n Id of last inserted row: '+ last_id);

  con.end(err=>{
    if(err) throw err;
    console.log('Connection is terminated.');
  });
});
Salveaza codul de mai sus intr-un fisier numit "mysql_insert2.js" si ruleaza fisierul:
node test/mysql_insert2.js
Iti va da un rezultat ca acesta:
Number of records inserted: 4
Id of first inserted row: 2
Id of last inserted row: 5
Connection is terminated.

Daca e adaugat sirul "localhost" in proprietatea "host", si rezulta aceasta eroare:
Error: getaddrinfo ENONET localhost:3306
- Incearca sa folosesti: "127.0.0.1"

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce atribut e folosit in tag-ul <img> pentru adresa imaginii?
href src rel
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Care din aceste coduri CSS ascunde elementul in pagina?
display: none; display: inline; position: relative;
#id {
  display: none;
}
Ce instructiune opreste executia lui while() sau for() ?
continue prompt() break
for(var i = 0; i< 8; i++) {
  if(i > 1) break;
  alert(i);
}
Indicati functia utilizata pentru a crea constante.
define() include() defined()
define("CONSTANT_NAME", "value");
echo CONSTANT_NAME;
Care este forma de plural a substativului "class" (clasa)?
classes clases clasis
This school has three classes.
- Scoala asta are trei clase.
Care este pluralul substativului "voz" (voce)?
vose voze voces
Escuché dos voces.
- Am auzit doua voci.
Creare tabel in baza de date MySQL si Adaugare date

Last accessed pages

  1. Poezii pentru copii, in engleza (36722)
  2. Less or Fewer (5424)
  3. Creare si editare pagini HTML (80027)
  4. Verbe Dinamice si Statice - Dynamic and Static Verbs (10111)
  5. Gramatica limbii engleze - Prezentare Generala (205046)

Popular pages this month

  1. Prezentul simplu si continuu - Present Tense Simple and Continuous (1582)
  2. Exercitii engleza - English Tests and exercises - Grammar (1356)
  3. Gramatica limbii engleze - Prezentare Generala (1341)
  4. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1160)
  5. Prezentul simplu - Exercitii si teste incepatori (771)