Add database queries

This commit is contained in:
coolneng 2020-06-14 03:12:32 +02:00
parent ae59e1376b
commit 3e4ed97de1
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
2 changed files with 90 additions and 7 deletions

View File

@ -3,8 +3,7 @@
with pkgs; with pkgs;
mkShell { mkShell {
buildInputs = buildInputs = [ php74 php74Extensions.pdo_mysql mysql57 ];
[ php74 php74Extensions.pdo_mysql php74Packages.composer mysql57 ];
shellHook = '' shellHook = ''
pkill mysql pkill mysql
@ -15,5 +14,7 @@ mkShell {
sleep 1 sleep 1
mysql --socket="$(pwd)/.mysql/mysql.sock" -u root < $(pwd)/database/db.sql mysql --socket="$(pwd)/.mysql/mysql.sock" -u root < $(pwd)/database/db.sql
alias mysql='mysql --socket="$(pwd)/.mysql/mysql.sock" -u root'
''; '';
} }

View File

@ -1,13 +1,95 @@
<?php <?php
function connectDatabase($user, $pass, $db) { function connectDatabase(str $user, str $pass, str $db) {
$unix_socket = '.mysql/mysql.sock'; $unix_socket = '.mysql/mysql.sock';
$charset = 'utf8mb4'; $charset = 'utf8mb4';
$dsn = "mysql:unix_socket=$unix_socket;dbname=$db;charset=$charset"; $dsn = "mysql:unix_socket=$unix_socket;dbname=$db;charset=$charset";
$db_connection = new PDO($dsn, $user, $pass); $pdo = new PDO($dsn, $user, $pass);
return $db_connection; return $pdo;
} }
function closeDatabase($db_connection) { function closeDatabase($pdo) {
$db_connection = null; $pdo = null;
} }
function displayResults($query) {
while($row = $query->fetch()){
echo $row . "\n";
}
}
function listRows($pdo, $table) {
$query = "SELECT * FROM ?";
$result = $pdo->prepare($query)->execute([$table]);
displayResults($query);
}
function findRows($pdo, str $table, str $attr, str $param) {
$query = "SELECT * FROM ? WHERE ? = ?";
$result = $pdo->prepare($query)->execute([$table, $attr, $param]);
displayResults($query);
}
function createPatient($pdo, $data) {
$query = "INSERT INTO paciente (nombre, apellido, fecha_de_nacimiento, documento_identificativo, tipo_documento, direccion, localidad, provincia, pais) VALUES (? ? ? ? ? ? ? ? ?)";
$pdo->prepare($query)->execute([$data["nombre"], $data["apellido"], $data["fecha_de_nacimiento"], $data["documento_identificativo"], $data["tipo_documento"], $data["direccion"], $data["localidad"], $data["provincia"], $data["pais"]]);
return "Paciente creado con éxito";
}
function editPatient($pdo, str $attr, str $param, str $id) {
$query = "UPDATE paciente SET ? = ? WHERE documento_identificativo = ?";
$pdo->prepare($query)->execute([$attr, $param, $id]);
return "Paciente modificado con éxito";
}
function deletePatient($pdo, str $id) {
$check = "SELECT * FROM informes where paciente = ?";
$result = $pdo->prepare($check)->execute([$id]);
if($result->columnCount() == 0){
$statement = "DELETE FROM paciente where document_identificado = ?";
$pdo->prepare($statement)->execute([$id]);
return "El paciente se ha eliminado correctamente";
}
return "No se puede eliminar el paciente dado que tiene citas";
}
function createHoliday($pdo, $data) {
$query = "INSERT INTO festivo (fecha_festivo, tipo_festivo, medico) VALUES (? ? ?)";
$pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"]]);
return "Festivo creado con éxito";
}
function editHoliday($pdo, $attr, $param, $id) {
$query = "UPDATE festivo SET ? = ? WHERE id = ?";
$pdo->prepare($query)->execute([$attr, $param, $id]);
return "Festivo modificado con éxito";
}
function deleteHoliday($pdo, str $id) {
$statement = "DELETE FROM festivo where id = ?";
$pdo->prepare($statement)->execute([$id]);
return "Festivo borrado con éxito";
}
function createUser($pdo, $data) {
$query = "INSERT INTO usuario (nombre, usuario, contraseña, rol, correo) VALUES (? ? ? ? ?)";
$pdo->prepare($query)->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data[$correo]]);
return "Usuario creado con éxito";
}
function editUser($pdo, $attr, $param, $id) {
$query = "UPDATE usuario SET ? = ? WHERE usuario = ?";
$pdo->prepare($query)->execute([$attr, $param, $id]);
return "Usuario modificado con éxito";
}
function deactivateUser($pdo, str $id) {
editUser($pdo, "fecha_baja", "CURRENT_TIMESTAMP", $id);
return "Usuario desactivado con éxito";
}
function listAppointments($pdo, str $doctor) {
findRows($pdo, "cita", "medico", $doctor);
}
?>