-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatabase.php
144 lines (134 loc) · 5.48 KB
/
database.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php include 'env.php'; ?>
<?php
$host = host(); // recupera l'host dal file env.php
$user = user(); // recupera l'username database MySQL dal file env.php
$password = password(); // recupera la password utente database MySQL dal file env.php
function create_db($name) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password']);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$sql = "CREATE DATABASE IF NOT EXISTS $name;";
try {
$conn->query($sql);
$conn->close();
} catch (mysqli_sql_exception $e) {
echo $e->getMessage();
}
}
}
function create_table($db, $name) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password'], $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$sql = "CREATE TABLE IF NOT EXISTS $name (
id int primary key auto_increment,
numero varchar(10) not null unique,
nome varchar(50) not null,
cognome varchar(50),
email varchar(50)
);";
try {
$conn->query($sql);
$conn->close();
} catch (mysqli_sql_exception $e) {
echo $e->getMessage();
}
}
}
function insert($db, $table, $values) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password'], $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$sql = "INSERT INTO $table (numero, nome, cognome, email) VALUES (?, ?, ?, ?);";
try {
$statement = $conn->prepare($sql); // prepara la query creando lo statement
$statement->bind_param("ssss", $values[0], $values[1], $values[2], $values[3]); // effettua il binding dei parametri
$statement->execute(); // esegue la query
$statement->close(); // chiude lo statement
$conn->close();
return true; // ritorna true se l'inserimento è andato a buon fine
} catch (mysqli_sql_exception $e) {
return false; // ritorna false se l'inserimento ha generato questo errore
}
}
}
function select_all($db, $table) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password'], $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$sql = "SELECT numero, nome, cognome, email FROM $table ORDER BY nome;";
try {
$result = $conn->query($sql);
$conn->close();
return $result->fetch_all(); // restituisce un array di array con tutti i dati ricavati
} catch (mysqli_sql_exception $e) {
echo $e->getMessage();
}
}
}
function select_by_number($db, $table, $number) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password'], $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$sql = "SELECT numero, nome, cognome, email FROM $table WHERE numero = '$number';";
try {
$result = $conn->query($sql);
$conn->close();
return $result->fetch_all()[0]; // restituisce un array con il singolo record trovato in base al numero telefonico
} catch (mysqli_sql_exception $e) {
echo $e->getMessage();
}
}
}
function select_by_anything($db, $table, $regex) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password'], $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$regex = strtolower($regex);
$sql = "SELECT numero, nome, cognome, email FROM $table WHERE numero LIKE '%$regex%' OR nome LIKE '%$regex%' OR cognome LIKE '%$regex%' OR email LIKE '%$regex%' ORDER BY nome;";
try {
$result = $conn->query($sql);
$conn->close();
return $result->fetch_all(); // restituisce un array di array con tutti i dati ricavati in base al criterio di ricerca indicato lato client
} catch (mysqli_sql_exception $e) {
echo $e->getMessage();
}
}
}
function delete($db, $table, $number) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password'], $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$sql = "DELETE FROM $table WHERE numero = '$number';";
try {
$conn->query($sql);
$conn->close();
return true; // ritorna true se l'eliminazione è andata a buon fine
} catch (mysqli_sql_exception $e) {
return false; // ritorna false se l'eliminazione ha generato questo errore
}
}
}
function edit($db, $table, $number, $new_data) {
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['password'], $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
$sql = "UPDATE $table SET nome = '$new_data[0]', cognome = '$new_data[1]', email = '$new_data[2]' WHERE numero = '$number';";
try {
$conn->query($sql);
$conn->close();
return true; // ritorna true se l'aggiornamento è andato a buon fine
} catch (mysqli_sql_exception $e) {
return false; // ritorna false se l'aggiornamento ha generato questo errore
}
}
}
?>