Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $servername = "your-maria-db-server";
- $username = "your-db-username";
- $password = "your-db-password";
- $dbname = "your-dbanme";
- $db = new PDO('mysql:host=' . $servername . ';dbname=' . $dbname, $username, $password);
- function selectAnd($entityName, $where = null, $orderBy = null)
- {
- global $db;
- $query = 'SELECT * FROM ' . $entityName;
- if ($where != null) {
- if (count($where) > 0) {
- $query .= ' WHERE' . generateWhere('AND', $where);
- }
- }
- if ($orderBy != null) {
- if (count($orderBy) > 0) {
- $query .= ' ORDER BY' . generateOrderBy($orderBy);
- }
- }
- $statement = $db->prepare($query);
- if ($where != null) {
- $statement = bindQuery($statement, $where);
- }
- $statement->execute();
- $result = $statement->fetchAll();
- $statement->closeCursor();
- return $result;
- }
- function selectOr($entityName, $where = null, $orderBy = null)
- {
- global $db;
- $query = 'SELECT * FROM ' . $entityName;
- if ($where != null) {
- if (count($where) > 0) {
- $query .= ' WHERE' . generateWhere('OR', $where);
- }
- }
- if ($orderBy != null) {
- if (count($orderBy) > 0) {
- $query .= ' ORDER BY' . generateOrderBy($orderBy);
- }
- $query = substr($query, 0, intval(strlen($query) - 1));
- }
- $statement = $db->prepare($query);
- if ($where != null) {
- $statement = bindQuery($statement, $where);
- }
- $statement->execute();
- $result = $statement->fetchAll();
- $statement->closeCursor();
- return $result;
- }
- function insert($entityName, $data)
- {
- global $db;
- $query = 'INSERT INTO ' . $entityName . ' ' . generateColumnsParameters('', $data) . ' VALUES ' . generateColumnsParameters(':', $data);
- $statement = $db->prepare($query);
- $statement = bindQuery($statement, $data);
- $statement->execute();
- $statement->closeCursor();
- }
- function update($entityName, $data, $where)
- {
- global $db;
- $query = 'UPDATE ' . $entityName . ' SET ' . generateUpdateParameters($data) . ' WHERE ' . generateWhere('AND', $where);
- $statement = $db->prepare($query);
- $statement = bindQuery($statement, $data);
- $statement = bindQuery($statement, $where);
- $statement->execute();
- $statement->closeCursor();
- }
- function delete($entityName, $where)
- {
- global $db;
- $query = 'DELETE FROM ' . $entityName . ' WHERE ' . generateWhere('AND', $where);
- $statement = $db->prepare($query);
- $statement = bindQuery($statement, $where);
- $statement->execute();
- $statement->closeCursor();
- }
- function generateWhere($operator, $where)
- {
- $query = '';
- foreach ($where as $key => $value) {
- $query .= ' ' . $key . ' = :' . $key . ' ' . $operator;
- }
- $query = substr($query, 0, intval(strlen($query) - intval(strlen($operator) + 1)));
- return $query;
- }
- function generateOrderBy($orderBy)
- {
- $query = '';
- foreach ($orderBy as $value) {
- $query .= ' ' . $value . ',';
- }
- $query = substr($query, 0, intval(strlen($query) - 1));
- return $query;
- }
- function generateUpdateParameters($data)
- {
- $query = '';
- foreach ($data as $key => $value) {
- $query .= $key . ' = :' . $key . ', ';
- }
- $query = substr($query, 0, intval(strlen($query) - 2));
- return $query;
- }
- function generateColumnsParameters($isParam, $data)
- {
- $query = '(';
- foreach ($data as $key => $value) {
- $query .= $isParam . $key . ',';
- }
- $query = substr($query, 0, intval(strlen($query) - 1));
- $query .= ')';
- return $query;
- }
- function bindQuery($statement, $data)
- {
- foreach ($data as $key => $value) {
- $statement->bindValue(':' . $key, $value);
- }
- return $statement;
- }
Add Comment
Please, Sign In to add comment