예제 #1
0
        $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));
예제 #2
0
 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;
 }
예제 #3
0
파일: Db.php 프로젝트: moiseh/metapages
 /**
  * @return PDOStatement
  */
 public static function query($sql, $args = array())
 {
     return \Meta\Core\Db::execute(\Meta\Core\Db::sqlNormalize($sql), $args);
 }