Switch to prepared statements for PDO queries to avoid sql injection from user input.
This commit is contained in:
1 parent
c724aab6ec
commit
1963eaf1f9
1 file changed
+22
-11
@@ -65,19 +65,27 @@ class DB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getBoxNameByBoxID($boxID) {
|
public function getBoxNameByBoxID($boxID) {
|
||||||
return $this->db->query("SELECT name FROM boxes WHERE id='".$boxID."' LIMIT 1")->fetchColumn();
|
$query = $this->db->prepare("SELECT name FROM boxes WHERE id=? LIMIT 1");
|
||||||
|
$query->execute([$boxID]);
|
||||||
|
return $query->fetchColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNewBoxIDOnCorrectByBoxID($boxID) {
|
public function getNewBoxIDOnCorrectByBoxID($boxID) {
|
||||||
return $this->db->query("SELECT class_id_on_correct FROM boxes WHERE id='".$boxID."' LIMIT 1")->fetchColumn();
|
$query = $this->db->prepare("SELECT class_id_on_correct FROM boxes WHERE id=? LIMIT 1");
|
||||||
|
$query->execute([$boxID]);
|
||||||
|
return $query->fetchColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNewBoxIDOnIncorrectByBoxID($boxID) {
|
public function getNewBoxIDOnIncorrectByBoxID($boxID) {
|
||||||
return $this->db->query("SELECT class_id_on_incorrect FROM boxes WHERE id='".$boxID."' LIMIT 1")->fetchColumn();
|
$query = $this->db->prepare("SELECT class_id_on_incorrect FROM boxes WHERE id=? LIMIT 1");
|
||||||
|
$query->execute([$boxID]);
|
||||||
|
return $query->fetchColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getClassNameByClassID($classID) {
|
public function getClassNameByClassID($classID) {
|
||||||
return $this->db->query("SELECT name FROM classes WHERE id='".$classID."' LIMIT 1")->fetchColumn();
|
$query = $this->db->prepare("SELECT name FROM classes WHERE id=? LIMIT 1");
|
||||||
|
$query->execute([$classID]);
|
||||||
|
return $query->fetchColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNumBoxes() {
|
public function getNumBoxes() {
|
||||||
@@ -85,7 +93,9 @@ class DB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getFirstCardByBoxID($boxID) {
|
public function getFirstCardByBoxID($boxID) {
|
||||||
$res = $this->db->query("SELECT * FROM cards WHERE box_id = '" . $boxID . "' LIMIT 1")->fetchAll();
|
$query = $this->db->prepare("SELECT * FROM cards WHERE box_id=? LIMIT 1");
|
||||||
|
$query->execute([$boxID]);
|
||||||
|
$res = $query->fetchAll();
|
||||||
if (count($res) > 0) {
|
if (count($res) > 0) {
|
||||||
$row = $res[0];
|
$row = $res[0];
|
||||||
return Card::createFromDBRow($row);
|
return Card::createFromDBRow($row);
|
||||||
@@ -117,28 +127,29 @@ class DB {
|
|||||||
public function updateCard($card) {
|
public function updateCard($card) {
|
||||||
$origCard = $this->getCardByCardID($card->id);
|
$origCard = $this->getCardByCardID($card->id);
|
||||||
if($origCard->boxID != $card->boxID) {
|
if($origCard->boxID != $card->boxID) {
|
||||||
$res = $this->db->query("UPDATE cards SET box_id='".$card->boxID."' WHERE id='".$card->id."'");
|
$this->db->prepare("UPDATE cards SET box_id=? WHERE id=?")->execute([$card->boxID, $card->id]);
|
||||||
}
|
}
|
||||||
if($origCard->classID != $card->classID) {
|
if($origCard->classID != $card->classID) {
|
||||||
$res = $this->db->query("UPDATE cards SET class_id='".$card->classID."' WHERE id='".$card->id."'");
|
$this->db->prepare("UPDATE cards SET class_id=? WHERE id=?")->execute([$card->classID, $card->id]);
|
||||||
}
|
}
|
||||||
if($origCard->front != $card->front) {
|
if($origCard->front != $card->front) {
|
||||||
$res = $this->db->query("UPDATE cards SET front='".$card->front."' WHERE id='".$card->id."'");
|
$this->db->prepare("UPDATE cards SET front=? WHERE id=?")->execute([$card->id]);
|
||||||
}
|
}
|
||||||
if($origCard->back != $card->back) {
|
if($origCard->back != $card->back) {
|
||||||
$res = $this->db->query("UPDATE cards SET back='".$card->back."' WHERE id='".$card->id."'");
|
$this->db->prepare("UPDATE cards SET back=? WHERE id=?")->execute([$card->back, $card->id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createCard($card) {
|
public function createCard($card) {
|
||||||
if($card->classID != null && $card->front != null && $card->back != null) {
|
if($card->classID != null && $card->front != null && $card->back != null) {
|
||||||
$res = $this->db->query("INSERT INTO cards (box_id,class_id,front,back) VALUES(3,".$card->classID.",'".$card->front."','".$card->back."')");
|
$this->db->prepare("INSERT INTO cards (box_id,class_id,front,back) VALUES(3,?,?,?)")
|
||||||
|
->execute([$card->classID, $card->front, $card->back]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteCard($cardID) {
|
public function deleteCard($cardID) {
|
||||||
if($cardID != null) {
|
if($cardID != null) {
|
||||||
$res = $this->db->query("DELETE FROM cards WHERE id='".$cardID."'");
|
$this->db->prepare("DELETE FROM cards WHERE id=?")->execute([$cardID]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user