public function prepareQuery() { $sql = $this->query; // prepara SQL // a configuracao pode ser com a SQL pura (corrida) ou quebrada em partes if (is_array($sql)) { $where = isset($sql['where']) ? $sql['where'] : NULL; $sql['where'] = Builder::replaceSQL($where); // apply search filters if ($this->enableSearchBox && isset($_GET['squery']) && strlen($_GET['squery']) > 0) { $sql = Db::searchWhere($sql, $this->sqlCols, filter_input(INPUT_GET, 'squery')); } } else { $sql = Builder::replaceSQL($sql); } return $sql; }
public static function sqlError($sql) { $error = null; try { $sql = \Meta\Core\Db::sqlNormalize($sql); $sql = \Meta\Builder::replaceSQL($sql); $statement = \Meta\Core\Db::getPDO()->prepare($sql); if (!$statement->execute()) { $error = implode(', ', $statement->errorInfo()); } } catch (Exception $e) { $error = $e->getMessage(); } return $error; }
$pages[$path] = $page->toArray(); \Meta\Builder::write('pages', $pages); } echo json_encode(array('errors' => $errors, 'obj' => $object)); }); // new route_add('builder/editobject/*/*', function ($path, $oid) { $pages = \Meta\Builder::read('pages'); $page = new \Meta\Builder\Page($path, $pages[$path]); $object = $page->objects[$oid]; echo json_encode($object); }); route_add('builder/analizesql/*/*', function ($pname, $oid) { $errors = array(); $cols = array(); $sql = \Meta\Builder::replaceSQL(\Meta\Core\Db::sqlNormalize($_REQUEST['query'])); $statement = \Meta\Core\Db::getPDO()->prepare($sql); if ($statement->execute()) { for ($i = 0; $i < $statement->columnCount(); $i++) { $meta = $statement->getColumnMeta($i); // $cols[$meta['name']] = $meta['native_type']; $cols[$meta['name']] = $meta['name']; } } else { $errors = $statement->errorInfo(); } // ataualiza colunas do SQL na base (array) $pages = \Meta\Builder::read('pages'); $pages[$pname]['objects'][$oid]['sqlCols'] = $cols; \Meta\Builder::write('pages', $pages); echo json_encode(array('errors' => $errors, 'sql_cols' => $cols));