示例#1
0
文件: db.php 项目: robchett/framework
 /**
  * @param $sql
  * @param array $params
  * @param bool $throwable
  * @return \PDOStatement
  */
 static function query($sql, $params = [], $throwable = false)
 {
     // Attempt to reconnect if connection has gone away.
     if (!_db::connected()) {
         _db::reconnect();
     }
     $prep_sql = _db::$con->prepare($sql);
     if (!empty($params)) {
         foreach ($params as $key => $val) {
             $prep_sql->bindValue($key, $val);
         }
     }
     try {
         $prep_sql->execute();
     } catch (\PDOException $e) {
         $error = node::create('div.error_message.mysql', [], node::create('p', [], $e->getMessage() . \core::get_backtrace() . print_r(isset($prep_sql->queryString) ? $prep_sql->queryString : '', 1) . print_r($params, true)));
         if (ajax) {
             _ajax::inject('body', 'append', $error);
             if (!$throwable) {
                 _ajax::do_serve();
                 die;
             }
         } else {
             echo $error;
             if (!$throwable) {
                 die;
             }
         }
     }
     return $prep_sql;
 }