Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace MGmodule\crud2\config;
- class Database extends \PDO
- {
- private $dsn = 'mysql:dbname=todo;host=localhost';
- private $username = 'root';
- private $pass = 'Samolot132';
- private static $_instance = null;
- //musi być public, bo dziedziczy po PDO, też nad tym ubolewam :(
- public function __construct()
- {
- parent::__construct($this->dsn, $this->username, $this->pass);
- }
- public static function getInstance()
- {
- try {
- if (!(self::$_instance instanceof Database)) {
- self::$_instance = new Database();
- }
- } catch (\PdoException $e) {
- echo "Database doesn't want to work with Us";
- }
- return self::$_instance;
- }
- /*
- * Select from database WHERE
- * string @quantity
- * string @table
- * array assoc @data
- * return array
- *
- */
- public static function select($quantity, $table, array $data)
- {
- $query = ('SELECT ' . $quantity . ' FROM ' . $table . ' WHERE ' . self::arrayToQuery($data));
- $prepared = self::getReady($query);
- $stmt = self::bind($data, $prepared);
- return $row = self::getRow($stmt);
- }
- /*
- * Select all from database
- * string @quantity
- * string @table
- */
- public static function selectAll($quantity, $table)
- {
- $query = ('SELECT' . $quantity . 'FROM ' . $table);
- $stmt = self::getReady($query);
- return $row = self::getRow($stmt);
- }
- /*
- *
- * string @table
- * array assoc $data
- */
- public static function Insert($table, array $data)
- {
- $query = ('INSERT INTO ' . $table . ' (' . self::getParamsIndex($data) . ') VALUES (' . self::getParamsIndexToBind($data) . ')');
- $ready = self::getReady($query);
- $stmt = self::bind($data, $ready);
- return $execute = $stmt->execute();
- }
- /*
- * string @table
- * int @id
- */
- public static function delete($table, $id)
- {
- $query = ('DELETE FROM ' . $table . ' WHERE id = :id');
- $stmt = self::getReady($query);
- $stmt->bindValue(':id', $id);
- return $result = $stmt->execute();
- }
- /*
- * string @table
- * array assoc @data
- * int @id
- */
- public static function update($table, array $data, $id)
- {
- $query = ('UPDATE ' . $table . ' SET ' . self::arrayToQuery($data) . ' WHERE id = :id');
- $ready = self::getReady($query);
- $stmt = self::bind($data, $ready);
- $stmt->bindValue(':id', $id);
- $row = $stmt->execute();
- return 1;
- }
- private static function getReady($query)
- {
- return $stmt = self::getInstance()->prepare($query);
- }
- private static function getRow($stmt)
- {
- $stmt->execute();
- $row = $stmt->fetchAll(\PDO::FETCH_ASSOC);
- if (!$row) {
- return false;
- }
- return $row[0];
- }
- private static function bind(array $data, $stmt)
- {
- $statement = $stmt;
- foreach ($data as $db_index => $value) {
- $statement->bindValue(':' . $db_index, $value);
- }
- return $statement;
- }
- /*
- * return string 'index=:index, index2=:index2, index3=:index3'
- */
- private static function arrayToQuery(array $data)
- {
- $query_params = '';
- $i = 0;
- foreach ($data as $db_name => $key) {
- if (0 == $i) {
- $query_params = $db_name . "=:" . $db_name;
- $i++;
- } else {
- $query_params = $query_params . ', ' . $db_name . "=:" . $db_name . ' ';
- }
- }
- return $query_params;
- }
- /*
- * return string 'index, index2, index3'
- */
- private static function getParamsIndex(array $data)
- {
- $db_index = '';
- $i = 0;
- foreach ($data as $db_name => $key) {
- if (0 == $i) {
- $db_index = $db_name;
- $i++;
- } else {
- $db_index = $db_index . ', ' . $db_name;
- }
- }
- return $db_index;
- }
- /*
- * return string ':index, :index2, :index3'
- */
- private static function getParamsIndexToBind(array $data)
- {
- $db_index = '';
- $i = 0;
- foreach ($data as $db_name => $key) {
- if (0 == $i) {
- $db_index = ':' . $db_name;
- $i++;
- } else {
- $db_index = $db_index . ', :' . $db_name;
- }
- }
- return $db_index;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement