1
0
Fork 0

Restructured "dba::exists" function

This commit is contained in:
Michael 2017-08-12 08:55:50 +00:00
commit 1d8c91c478
9 changed files with 33 additions and 35 deletions

View file

@ -767,13 +767,19 @@ class dba {
/**
* @brief Check if data exists
*
* @param string $sql SQL statement
* @return boolean Are there rows for that query?
* @param string $table Table name
* @param array $condition array of fields for condition
*
* @return boolean Are there rows for that condition?
*/
static public function exists($sql) {
$params = self::getParam(func_get_args());
static public function exists($table, $condition) {
if (empty($table)) {
return false;
}
$stmt = self::p($sql, $params);
$fields = array_keys($condition);
$stmt = self::select($table, array($fields[0]), $condition, array('limit' => 1, 'only_query' => true));
if (is_bool($stmt)) {
$retval = $stmt;
@ -1270,11 +1276,13 @@ class dba {
$param_string = substr($param_string, 0, -2);
}
if (isset($params['limit'])) {
if (is_int($params['limit'])) {
$param_string .= " LIMIT ".$params['limit'];
$single_row =($params['limit'] == 1);
}
if (isset($params['limit']) && is_int($params['limit'])) {
$param_string .= " LIMIT ".$params['limit'];
$single_row = ($params['limit'] == 1);
}
if (isset($params['only_query']) && $params['only_query']) {
$single_row = !$params['only_query'];
}
$sql = "SELECT ".$select_fields." FROM `".$table."`".$condition_string.$param_string;

View file

@ -245,10 +245,7 @@ function profile_sidebar($profile, $block = 0) {
$profile_url = normalise_link(App::get_baseurl()."/profile/".$profile["nickname"]);
}
$r = dba::select('contact', array('id'),
array('pending' => false, 'uid' => local_user(), 'nurl' => $profile_url), array('limit' => 1));
if (dbm::is_result($r))
$connect = false;
$connect = !dba::exists('contact', array('pending' => false, 'uid' => local_user(), 'nurl' => $profile_url));
}
if ($connect && ($profile['network'] != NETWORK_DFRN) && !isset($profile['remoteconnect']))

View file

@ -121,8 +121,7 @@ function reload_plugins() {
* @return boolean
*/
function plugin_enabled($plugin) {
$r = dba::select('addon', array('id'), array('installed' => true, 'name' => $plugin), array('limit' => 1));
return ((dbm::is_result($r)) && (count($r) > 0));
return dba::exists('addon', array('installed' => true, 'name' => $plugin));
}

View file

@ -14,8 +14,8 @@ function remove_contact_run($argv, $argc) {
$id = intval($argv[1]);
// Only delete if the contact doesn't exist (anymore)
$r = dba::select('contact', array('id'), array('id' => $id), array('limit' => 1));
if (dbm::is_result($r)) {
$r = dba::exists('contact', array('id' => $id));
if ($r) {
return;
}

View file

@ -488,8 +488,6 @@ if (! function_exists('item_new_uri')) {
function item_new_uri($hostname, $uid, $guid = "") {
do {
$dups = false;
if ($guid == "") {
$hash = get_guid(32);
} else {
@ -499,10 +497,7 @@ function item_new_uri($hostname, $uid, $guid = "") {
$uri = "urn:X-dfrn:" . $hostname . ':' . $uid . ':' . $hash;
$r = dba::select('item', array('id'), array('uri' => $uri), array('limit' => 1));
if (dbm::is_result($r)) {
$dups = true;
}
$dups = dba::exists('item', array('uri' => $uri));
} while ($dups == true);
return $uri;