ggdworkshop/db/db.php

81 lines
2.3 KiB
PHP
Raw Permalink Normal View History

<?php
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
$db_path = $root."/db/ggdworkshop.db";
$schema_path = $root."/db/schema.sql";
class DB{
private $pdo;
public function connect(){
if($this->pdo == null){
global $db_path;
$this->pdo = new \PDO('sqlite:'.$db_path);
$this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
return $this->pdo;
}
public function schema($schema_file){
$sql = file_get_contents($schema_file);
$this->pdo->exec($sql);
}
public function insert($registro){
$columns = implode(",", array_keys($registro));
echo $columns;
$sql = "INSERT INTO Registro ($columns)"
.' VALUES (:nombre,:apellido,:titulo,:afiliacion,:ciudad,:pais,:email,:fechaLlegada,'
.':fechaPartida,:financiacion,:invitado,:cartaInvitacion,:roomingPref,:roommate,:fechaRegistro);';
echo $sql;
$stmt = $this->pdo->prepare($sql);
$stmt->execute([
':nombre' => $registro['nombre'],
':apellido' => $registro['apellido'],
':titulo' => $registro['titulo'],
':afiliacion' => $registro['afiliacion'],
':ciudad' => $registro['ciudad'],
':pais' => $registro['pais'],
':email' => $registro['email'],
':fechaLlegada' => $registro['fechaLlegada'],
':fechaPartida' => $registro['fechaPartida'],
':financiacion' => $registro['financiacion'],
':invitado' => $registro['invitado'],
':cartaInvitacion' => $registro['cartaInvitacion'],
':roomingPref' => $registro['roomingPref'],
':roommate' => $registro['roommate'],
':fechaRegistro' => $registro['fechaRegistro']
]);
return $this->pdo->lastInsertId();
}
public function getAll(){
$stmt = $this->pdo->prepare("SELECT * FROM Registro");
$stmt -> execute();
return $stmt->fetchAll(\PDO::FETCH_BOTH);
}
public function findByMail($email){
$stmt = $this->pdo->prepare("SELECT * FROM Registro WHERE email=:email");
$stmt->bindParam(":email",$email);
$stmt->execute();
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
if($result)
return false;
else
true;
}
}
$db = new DB();
$db->connect();
$db->schema($schema_path);
?>