Example #1
0
 public function getAllFields($tablename)
 {
     $cur = sqlrcur_alloc($this->_conn);
     $success = sqlrcur_sendQuery($cur, SQLHelper::createSafeSQL("select * from :table", array(":table" => $tablename)));
     sqlrcon_endSession($cur);
     if (!$success) {
         throw new DatasetException(sqlrcur_errorMessage($cur));
     }
     $fields = [];
     $colCount = sqlrcur_colCount($cur);
     for ($col = 0; $col < $colCount; $col++) {
         $fields[] = strtolower(sqlrcur_getColumnName($cur, $col));
     }
     sqlrcur_free($cur);
     return $fields;
 }
Example #2
0
function &serendipity_db_query($sql, $single = false, $result_type = "both", $reportErr = false, $assocKey = false, $assocVal = false, $expectError = false)
{
    global $serendipity;
    $type_map = array('assoc' => sqlr_ASSOC, 'num' => sqlr_NUM, 'both' => sqlr_BOTH, 'true' => true, 'false' => false);
    static $benchmark = false;
    // highlight_string(var_export($sql, 1));
    if (!is_resource($serendipity['dbConn'])) {
        return false;
    }
    $cur = sqlrcur_alloc($serendipity['dbConn']);
    $serendipity['dbCursor'] = $cur;
    if ($benchmark) {
        $start = microtime_float();
    }
    if ($expectError) {
        $c = sqlrcur_sendQuery($cur, $sql);
    } else {
        $c = sqlrcur_sendQuery($cur, $sql);
    }
    if ($benchmark) {
        $end = microtime_float();
        $cur = sqlrcur_alloc($serendipity['dbConn']);
        $sql_b = "INSERT INTO BLOGLOG (request, timestamp, sql, exec_time, ip) VALUES ('" . serendipity_db_escape_string($_SERVER['REQUEST_URI']) . "', NOW(), '" . serendipity_db_escape_string($sql) . "', '" . number_format($end - $start, 10) . "', '" . serendipity_db_escape_string($_SERVER['REMOTE_ADDR']) . "')";
        $c = sqlrcur_sendQuery($cur, $sql_b);
        $psql = $sql;
        $psql = preg_replace('@[0-9]{10}@', 'TIMESTAMP', $psql);
        $sql_U = "UPDATE BLOGLOG_TOTAL SET counter = counter + 1 WHERE sql = '" . serendipity_db_escape_string($psql) . "'";
        $c = sqlrcur_sendQuery($cur, $sql_U);
        if (sqlrcur_affectedRows() < 1) {
            $sql_i = "INSERT INTO BLOGLOG_TOTAL (sql, counter) VALUES ('" . serendipity_db_escape_string($psql) . "', 1)";
            $c = sqlrcur_sendQuery($cur, $sql_i);
        }
    }
    if (!$expectError && sqlrcur_errorMessage($cur) != '') {
        $msg = '<pre>' . htmlspecialchars($sql) . '</pre> / ' . htmlspecialchars(sqlrcur_errorMessage($cur));
        return $msg;
    }
    if (!$c) {
        if (!$expectError && !$serendipity['production']) {
            print '<pre>' . htmlspecialchars($sql) . '</pre> / ' . htmlspecialchars(sqlrcur_errorMessage($cur));
            if (function_exists('debug_backtrace') && $reportErr == true) {
                highlight_string(var_export(debug_backtrace(), 1));
            }
        }
        return $type_map['false'];
    }
    if ($c === true) {
        return $type_map['true'];
    }
    $result_type = $type_map[$result_type];
    switch (sqlrcur_rowCount($cur)) {
        case 0:
            if ($single) {
                return $type_map['false'];
            }
            return $type_map['true'];
        case 1:
            if ($single) {
                $row = generate_resultset($cur, $result_type);
                if ($result_type != 'sqlr_ASSOC') {
                    $row = $row[0];
                }
                return $row;
            }
        default:
            if ($single) {
                return generate_resultset($cur, $result_type);
            }
            $row = generate_resultset($cur);
            $rows = array();
            for ($idx = 0, $idxc = count($row); $idx < $idxc; $idx++) {
                if (!empty($assocKey)) {
                    // You can fetch a key-associated array via the two function parameters assocKey and assocVal
                    if (empty($assocVal)) {
                        $rows[$assocKey] = $row[$idx][$assocKey];
                    } else {
                        $rows[$row[$idx][$assocKey]] = $row[$idx][$assocVal];
                    }
                } else {
                    $rows = $row;
                }
            }
            return $rows;
    }
}
function da_sql_error($link, $config)
{
    return sqlrcur_errorMessage($link[cur]);
}
 /**
  * If a query failed and generated an error, the error message is available here. 
  * If the query succeeded then this function returns false
  *
  * @access public
  * @return string
  */
 function _error_message()
 {
     return sqlrcur_errorMessage($this->curs_id);
 }