adds database
This commit is contained in:
parent
448956888d
commit
f4a3010c3f
80
db/db/db.php
Normal file
80
db/db/db.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?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);
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
BIN
db/db/ggdworkshop.db
Normal file
BIN
db/db/ggdworkshop.db
Normal file
Binary file not shown.
19
db/db/schema.sql
Normal file
19
db/db/schema.sql
Normal file
@ -0,0 +1,19 @@
|
||||
CREATE TABLE IF NOT EXISTS Registro
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
nombre VARCHAR(50) NOT NULL,
|
||||
apellido VARCHAR(50) NOT NULL,
|
||||
titulo VARCHAR(50),
|
||||
afiliacion VARCHAR(50),
|
||||
ciudad VARCHAR(50),
|
||||
pais VARCHAR(50),
|
||||
email VARCHAR(80) NOT NULL UNIQUE,
|
||||
fechaLlegada DATE,
|
||||
fechaPartida DATE,
|
||||
financiacion BOOLEAN NOT NULL,
|
||||
invitado BOOLEAN NOT NULL,
|
||||
cartaInvitacion BOOLEAN NOT NULL,
|
||||
roomingPref VARCHAR(50),
|
||||
roommate VARCHAR(50),
|
||||
fechaRegistro DATETIME NOT NULL
|
||||
);
|
Loading…
Reference in New Issue
Block a user