forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.4 KiB
120 lines
3.4 KiB
<?php |
|
|
|
namespace app\Core; |
|
|
|
use app\Core\Connect; |
|
use PDO; |
|
use PDOException; |
|
|
|
/** |
|
* Description of WppModel |
|
* |
|
* @author Lucas Awade |
|
*/ |
|
abstract class Model |
|
{ |
|
|
|
protected $query; |
|
|
|
protected function strquery($stmt, $params) |
|
{ |
|
foreach ($params as $key => $value) { |
|
if (is_null($value) || (is_string($value) && $value == '')) { |
|
$value = null; |
|
} |
|
$stmt->bindValue(":{$key}", $value, (is_int($value) ? PDO::PARAM_INT : PDO::PARAM_STR)); |
|
} |
|
} |
|
|
|
public function begin() |
|
{ |
|
try { |
|
Connect::getInstance()->beginTransaction(); |
|
return 1; |
|
} catch (PDOException $ex) { |
|
Connect::setInstance(null); |
|
logger('PDOExcep')->error('PDOException: ' . $ex->getMessage(), debug_backtrace()); |
|
return null; |
|
} |
|
} |
|
|
|
public function commit() |
|
{ |
|
try { |
|
Connect::getInstance()->commit(); |
|
return 1; |
|
} catch (PDOException $ex) { |
|
Connect::setInstance(null); |
|
logger('PDOExcep')->error('PDOException: ' . $ex->getMessage(), debug_backtrace()); |
|
return null; |
|
} |
|
} |
|
|
|
public function rollback() |
|
{ |
|
try { |
|
Connect::getInstance()->rollBack(); |
|
return 1; |
|
} catch (PDOException $ex) { |
|
Connect::setInstance(null); |
|
logger('PDOExcep')->error('PDOException: ' . $ex->getMessage(), debug_backtrace()); |
|
return null; |
|
} |
|
} |
|
|
|
protected function create($query, $data) |
|
{ |
|
try { |
|
$stmt = Connect::getInstance()->prepare($query); |
|
$this->strquery($stmt, $data); |
|
$stmt->execute(); |
|
return Connect::getInstance()->lastInsertId(); |
|
} catch (PDOException $ex) { |
|
Connect::setInstance(null); |
|
logger('PDOExcep')->error('PDOException: ' . $ex->getMessage(), debug_backtrace()); |
|
return null; |
|
} |
|
} |
|
|
|
protected function read($query, $data = null) |
|
{ |
|
try { |
|
$stmt = Connect::getInstance()->prepare($query); |
|
$this->strquery($stmt, $data); |
|
$stmt->execute(); |
|
return $stmt; |
|
} catch (PDOException $ex) { |
|
Connect::setInstance(null); |
|
logger('PDOExcep')->error('PDOException: ' . $ex->getMessage(), debug_backtrace()); |
|
return null; |
|
} |
|
} |
|
|
|
protected function delete($query, $data) |
|
{ |
|
try { |
|
$stmt = Connect::getInstance()->prepare($query); |
|
$this->strquery($stmt, $data); |
|
$stmt->execute(); |
|
return ($stmt->rowCount() ? 1 : 0); |
|
} catch (PDOException $ex) { |
|
Connect::setInstance(null); |
|
logger('PDOExcep')->error('PDOException: ' . $ex->getMessage(), debug_backtrace()); |
|
return null; |
|
} |
|
} |
|
|
|
protected function update($query, $data) |
|
{ |
|
try { |
|
$stmt = Connect::getInstance()->prepare($query); |
|
$this->strquery($stmt, $data); |
|
$stmt->execute(); |
|
return ($stmt->rowCount() ? 1 : 0); |
|
} catch (PDOException $ex) { |
|
Connect::setInstance(null); |
|
logger('PDOExcep')->error('PDOException: ' . $ex->getMessage(), debug_backtrace()); |
|
return null; |
|
} |
|
} |
|
} |