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; }
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); }