Dupa ce ati adaugat randuri in tabelul MySQL, puteti sa modificati datele inregistrate, folosind comanda UPDATE.
Instructiunea UPDATE este folosita pentru a modifica sau actualiza informatiile existente intr-un tabel.
-
Sintaxa:
UPDATE nume_tabel
SET coloana1=valoare, coloana2=valoare2, ...
WHERE o_coloana=o_valoare
- Clauza WHERE este importanta intr-o interogare UPDATE , specifica serverului MySQL care inregistrare sau inregistrari trebuie actualizate. Daca omiteti clauza WHERE, vor fi afectate toate randurile!
- Comanda UPDATE este trimisa la serverul MySQL cu metoda
query() a obiectului mysqli.
-
Exemplu
In lectiile anterioare a fost creat un tabel numita "users" si am adaugat cateva randuri in el. Asa arata primele doua inregistrari.
id | name | password | email | reg_date |
1 | Marius | faith | name@domain.net | 2011-03-24 09:51:46 |
2 | MarPlo | peace | user@domain.com | 2011-03-24 10:10:27 |
In acest exemplu vom modifica adresa de email pentru utilizatorul cu "name" MarPlo.
<?php
// conecteaza la baza de date "tests"
$conn = new mysqli('localhost', 'root', 'pass', 'tests');
// verifica conexiunea
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
// interogare sql UPDATE
$sql = "UPDATE `users` SET `email`='new_mail@domain.net' WHERE `name`='MarPlo' AND `id`=2";
// executa interogarea si verifica pentru erori
if (!$conn->query($sql)) {
echo 'Error: '. $conn->error;
}
$conn->close();
?>
Dupa cum observati, clauza WHERE pune doua conditii cu operatorul "AND" (
WHERE `name`='MarPlo' AND `id`=2), ii spune serverului MySQL sa actualizeze numai randurile care au "
name='MarPlo'" si "
id=2". Setand aceste doua conditii, putem fi siguri ca numai acel rand va fi modificat, nu un alt rand cu acelasi nume.
De asemenea, puteti sa aplicati optiunea LIMIT pentru a seta cate randuri sa fie actualizate.
Exemplu:
$sql = "UPDATE `users` SET `email`='new_mail@domain.net' WHERE `name`='MarPlo' AND `id`=2 LIMIT 1";
Dupa actualizare, primele doua randuri din tabelul "users" vor arata asa:
id | name | password | email | reg_date |
1 | Marius | faith | name@domain.net | 2011-03-24 09:51:46 |
2 | MarPlo | peace | new_mail@domain.com | 2011-03-27 10:20:58 |
- Deoarece "reg_date" este o coloana de tip TIMESTAMP (cu atribute:
on update CURRENT_TIMESTAMP ), serverul MySQL a modificat si valuarea ei, actualizand-o cu data si ora curente (din momentul efectuarii UPDATE).
Daca vreti ca o instructiune UPDATE sa nu schimbe valoare coloanei TIMESTAMP, cand creati tabelul trebuie sa nu adaugati atributul "
on update" , ci doar DEFAULT (
`coloana_data` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ).
- Daca executati o interogare UPDATE care nu modifica nici o valoare (
deoarece conditia WHERE nu se potriveste nici unui rand), nu va returna vreo eroare si nici nu va afecta vreun rand.
- Este indicat sa nu schimbati valoarea unei coloane de tip PRIMARY KEY (
in exemplul de mai sus, coloana "id").
Un Test simplu in fiecare zi
HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag HTML5 defineste un text marcat, evidentiat?
<mark> <embed> <span><p>Cursuri graruite: <mark>MarPlo.net</mark> , jocuri, anime.</p>
Ce pseudo-clasa CSS defineste un stil la element cand mouse-ul e deasupra lui?
:focus :hover :activea:hover {
font-weight: bold;
color: #00da01;
}
Clic pe functia ce returneaza un sir cu un numar rotunjit la x decimale.
toPrecision(x) toFixed(x) floor(x)var num = 12.34567;
num = num.toFixed(2);
alert(num); // 12.35
Indicati functia PHP care adauga continutul unui fisier intr-un array.
[) file() readfile()$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
Clic pe raspunsul potrivit la intrebarea: "What time is it?"
On the 7th of July 1996 It is a quarter to 5. Nice weather.What time is it? It is a quarter to 5.
- Cat este ora? E 5 fara un sfert.
Indicati raspunsul potrivit la intrebarea: "¿Qué hora es?"
Hace buen tiempo. En el 7 de julio de 1996 Son las tres menos cuarto.¿Qué hora es? Son las tres menos cuarto.
- Cat este ora? E 3 fara un sfert.