Improved queries, more uncommitted queries

This commit is contained in:
Michael Vogel 2016-10-17 18:38:51 +00:00
parent e5c7ce0902
commit 3e5cf5290e
12 changed files with 141 additions and 75 deletions

View file

@ -481,9 +481,9 @@ function get_contact($url, $uid = 0) {
if ($contactid == 0) { if ($contactid == 0) {
q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `addr`, `alias`, `notify`, `poll`, q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `addr`, `alias`, `notify`, `poll`,
`name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`, `name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`,
`batch`, `request`, `confirm`, `poco`, `batch`, `request`, `confirm`, `poco`, `name-date`, `uri-date`,
`writable`, `blocked`, `readonly`, `pending`) `writable`, `blocked`, `readonly`, `pending`)
VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', 1, 0, 0, 0)", VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', 1, 0, 0, 0)",
intval($uid), intval($uid),
dbesc(datetime_convert()), dbesc(datetime_convert()),
dbesc($data["url"]), dbesc($data["url"]),
@ -502,7 +502,9 @@ function get_contact($url, $uid = 0) {
dbesc($data["batch"]), dbesc($data["batch"]),
dbesc($data["request"]), dbesc($data["request"]),
dbesc($data["confirm"]), dbesc($data["confirm"]),
dbesc($data["poco"]) dbesc($data["poco"]),
dbesc(datetime_convert()),
dbesc(datetime_convert())
); );
$contact = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d ORDER BY `id` LIMIT 2", $contact = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d ORDER BY `id` LIMIT 2",
@ -533,16 +535,27 @@ function get_contact($url, $uid = 0) {
update_contact_avatar($data["photo"],$uid,$contactid); update_contact_avatar($data["photo"],$uid,$contactid);
q("UPDATE `contact` SET `addr` = '%s', `alias` = '%s', `name` = '%s', `nick` = '%s', $r = q("SELECT `addr`, `alias`, `name`, `nick` FROM `contact` WHERE `id` = %d", intval($contactid));
`name-date` = '%s', `uri-date` = '%s' WHERE `id` = %d",
dbesc($data["addr"]), // This condition should always be true
dbesc($data["alias"]), if (!dbm::is_result($r))
dbesc($data["name"]), return $contactid;
dbesc($data["nick"]),
dbesc(datetime_convert()), // Only update if there had something been changed
dbesc(datetime_convert()), if (($data["addr"] != $r[0]["addr"]) OR
intval($contactid) ($data["alias"] != $r[0]["alias"]) OR
); ($data["name"] != $r[0]["name"]) OR
($data["nick"] != $r[0]["nick"]))
q("UPDATE `contact` SET `addr` = '%s', `alias` = '%s', `name` = '%s', `nick` = '%s',
`name-date` = '%s', `uri-date` = '%s' WHERE `id` = %d",
dbesc($data["addr"]),
dbesc($data["alias"]),
dbesc($data["name"]),
dbesc($data["nick"]),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($contactid)
);
return $contactid; return $contactid;
} }

View file

@ -132,15 +132,33 @@ class Config {
$dbvalue = (is_array($value)?serialize($value):$value); $dbvalue = (is_array($value)?serialize($value):$value);
$dbvalue = (is_bool($dbvalue) ? intval($dbvalue) : $dbvalue); $dbvalue = (is_bool($dbvalue) ? intval($dbvalue) : $dbvalue);
$ret = q("INSERT INTO `config` ( `cat`, `k`, `v` ) VALUES ( '%s', '%s', '%s' ) // The "INSERT" command is very cost intense. It saves performance to do it this way.
ON DUPLICATE KEY UPDATE `v` = '%s'", $ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' ORDER BY `id` DESC LIMIT 1",
dbesc($family), dbesc($family),
dbesc($key), dbesc($key)
dbesc($dbvalue),
dbesc($dbvalue)
); );
// It would be better to use the dbm class.
// But there is an autoloader issue that I don't know how to fix:
// "Class 'Friendica\Core\dbm' not found"
//if (!dbm::is_result($ret))
if (!$ret)
$ret = q("INSERT INTO `config` (`cat`, `k`, `v`) VALUES ('%s', '%s', '%s') ON DUPLICATE KEY UPDATE `v` = '%s'",
dbesc($family),
dbesc($key),
dbesc($dbvalue),
dbesc($dbvalue)
);
elseif ($ret[0]['v'] != $dbvalue)
$ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s'",
dbesc($dbvalue),
dbesc($family),
dbesc($key)
);
if($ret) if($ret)
return $value; return $value;
return $ret; return $ret;
} }

View file

@ -128,14 +128,32 @@ class PConfig {
$a->config[$uid][$family][$key] = $value; $a->config[$uid][$family][$key] = $value;
$ret = q("INSERT INTO `pconfig` ( `uid`, `cat`, `k`, `v` ) VALUES ( %d, '%s', '%s', '%s' ) // The "INSERT" command is very cost intense. It saves performance to do it this way.
ON DUPLICATE KEY UPDATE `v` = '%s'", $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' ORDER BY `id` DESC LIMIT 1",
intval($uid), intval($uid),
dbesc($family), dbesc($family),
dbesc($key), dbesc($key)
dbesc($dbvalue),
dbesc($dbvalue)
); );
// It would be better to use the dbm class.
// My lacking knowdledge in autoloaders prohibits this.
// if (!dbm::is_result($ret))
if (!$ret)
$ret = q("INSERT INTO `pconfig` (`uid`, `cat`, `k`, `v`) VALUES (%d, '%s', '%s', '%s') ON DUPLICATE KEY UPDATE `v` = '%s'",
intval($uid),
dbesc($family),
dbesc($key),
dbesc($dbvalue),
dbesc($dbvalue)
);
elseif ($ret[0]['v'] != $dbvalue)
$ret = q("UPDATE `pconfig` SET `v` = '%s' WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s'",
dbesc($dbvalue),
intval($uid),
dbesc($family),
dbesc($key)
);
if($ret) if($ret)
return $value; return $value;
return $ret; return $ret;

View file

@ -362,7 +362,7 @@ function qu($sql) {
$stmt = @vsprintf($sql,$args); // Disabled warnings $stmt = @vsprintf($sql,$args); // Disabled warnings
if($stmt === false) if($stmt === false)
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG); logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG);
$db->q("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;"); $db->q("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
$retval = $db->q($stmt); $retval = $db->q($stmt);
$db->q("COMMIT;"); $db->q("COMMIT;");
return $retval; return $retval;

View file

@ -1120,7 +1120,7 @@ function db_definition($charset) {
), ),
"indexes" => array( "indexes" => array(
"PRIMARY" => array("id"), "PRIMARY" => array("id"),
"uid" => array("uid"), "uid_contactid" => array("uid", "contact-id"),
"resource-id" => array("resource-id"), "resource-id" => array("resource-id"),
"guid" => array("guid"), "guid" => array("guid"),
) )

View file

@ -705,22 +705,34 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
dbesc(NETWORK_DFRN), dbesc(NETWORK_DFRN),
intval($arr['uid']) intval($arr['uid'])
); );
if($r && count($r)) { if (dbm::is_result($r)) {
logger('duplicated item with the same uri found. ' . print_r($arr,true)); logger('duplicated item with the same uri found. '.print_r($arr,true));
return 0; return 0;
} }
// Check for an existing post with the same content. There seems to be a problem with OStatus. // On Friendica and Diaspora the GUID is unique
$r = q("SELECT `id` FROM `item` WHERE `body` = '%s' AND `network` = '%s' AND `created` = '%s' AND `contact-id` = %d AND `uid` = %d LIMIT 1", if (in_array($arr['network'], array(NETWORK_DFRN, NETWORK_DIASPORA))) {
dbesc($arr['body']), $r = q("SELECT `id` FROM `item` WHERE `guid` = '%s' AND `uid` = %d LIMIT 1",
dbesc($arr['network']), dbesc($arr['guid']),
dbesc($arr['created']), intval($arr['uid'])
intval($arr['contact-id']), );
intval($arr['uid']) if (dbm::is_result($r)) {
); logger('duplicated item with the same guid found. '.print_r($arr,true));
if($r && count($r)) { return 0;
logger('duplicated item with the same body found. ' . print_r($arr,true)); }
return 0; } else {
// Check for an existing post with the same content. There seems to be a problem with OStatus.
$r = q("SELECT `id` FROM `item` WHERE `body` = '%s' AND `network` = '%s' AND `created` = '%s' AND `contact-id` = %d AND `uid` = %d LIMIT 1",
dbesc($arr['body']),
dbesc($arr['network']),
dbesc($arr['created']),
intval($arr['contact-id']),
intval($arr['uid'])
);
if (dbm::is_result($r)) {
logger('duplicated item with the same body found. '.print_r($arr,true));
return 0;
}
} }
// Is this item available in the global items (with uid=0)? // Is this item available in the global items (with uid=0)?

View file

@ -91,11 +91,16 @@ function poller_run(&$argv, &$argc){
if (poller_too_much_workers()) if (poller_too_much_workers())
return; return;
q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = %d WHERE `id` = %d AND `executed` = '0000-00-00 00:00:00'", $upd = q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = %d WHERE `id` = %d AND `pid` = 0",
dbesc(datetime_convert()), dbesc(datetime_convert()),
intval($mypid), intval($mypid),
intval($r[0]["id"])); intval($r[0]["id"]));
if (!$upd) {
logger("Couldn't update queue entry ".$r[0]["id"]." - skip this execution", LOGGER_DEBUG);
continue;
}
// Assure that there are no tasks executed twice // Assure that there are no tasks executed twice
$id = q("SELECT `pid`, `executed` FROM `workerqueue` WHERE `id` = %d", intval($r[0]["id"])); $id = q("SELECT `pid`, `executed` FROM `workerqueue` WHERE `id` = %d", intval($r[0]["id"]));
if (!$id) { if (!$id) {

View file

@ -49,7 +49,7 @@ function community_content(&$a, $update = 0) {
// OR your own posts if you are a logged in member // OR your own posts if you are a logged in member
if(get_config('system', 'old_pager')) { if(get_config('system', 'old_pager')) {
$r = q("SELECT COUNT(distinct(`item`.`uri`)) AS `total` $r = qu("SELECT COUNT(distinct(`item`.`uri`)) AS `total`
FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
INNER JOIN `user` ON `user`.`uid` = `item`.`uid` AND `user`.`hidewall` = 0 INNER JOIN `user` ON `user`.`uid` = `item`.`uid` AND `user`.`hidewall` = 0
@ -120,7 +120,7 @@ function community_getitems($start, $itemspage) {
if (get_config('system','community_page_style') == CP_GLOBAL_COMMUNITY) if (get_config('system','community_page_style') == CP_GLOBAL_COMMUNITY)
return(community_getpublicitems($start, $itemspage)); return(community_getpublicitems($start, $itemspage));
$r = q("SELECT %s $r = qu("SELECT %s
FROM `thread` FORCE INDEX (`wall_private_received`) FROM `thread` FORCE INDEX (`wall_private_received`)
INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall` INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall`
INNER JOIN `item` ON `item`.`id` = `thread`.`iid` INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
@ -140,7 +140,7 @@ function community_getitems($start, $itemspage) {
function community_getpublicitems($start, $itemspage) { function community_getpublicitems($start, $itemspage) {
$r = q("SELECT %s $r = qu("SELECT %s
FROM `thread` FROM `thread`
INNER JOIN `item` ON `item`.`id` = `thread`.`iid` %s INNER JOIN `item` ON `item`.`id` = `thread`.`iid` %s
WHERE `thread`.`uid` = 0 WHERE `thread`.`uid` = 0

View file

@ -16,7 +16,7 @@ function display_init(&$a) {
// Does the local user have this item? // Does the local user have this item?
if (local_user()) { if (local_user()) {
$r = q("SELECT `id`, `parent`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item` $r = qu("SELECT `id`, `parent`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item`
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
AND `guid` = '%s' AND `uid` = %d", dbesc($a->argv[1]), local_user()); AND `guid` = '%s' AND `uid` = %d", dbesc($a->argv[1]), local_user());
if (count($r)) { if (count($r)) {
@ -27,7 +27,7 @@ function display_init(&$a) {
// Or is it anywhere on the server? // Or is it anywhere on the server?
if ($nick == "") { if ($nick == "") {
$r = q("SELECT `user`.`nickname`, `item`.`id`, `item`.`parent`, `item`.`author-name`, $r = qu("SELECT `user`.`nickname`, `item`.`id`, `item`.`parent`, `item`.`author-name`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`owner-link`, `item`.`body` `item`.`author-link`, `item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`owner-link`, `item`.`body`
FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid` FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
@ -44,7 +44,7 @@ function display_init(&$a) {
// Is it an item with uid=0? // Is it an item with uid=0?
if ($nick == "") { if ($nick == "") {
$r = q("SELECT `item`.`id`, `item`.`parent`, `item`.`author-name`, `item`.`author-link`, $r = qu("SELECT `item`.`id`, `item`.`parent`, `item`.`author-name`, `item`.`author-link`,
`item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`owner-link`, `item`.`body` `item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`owner-link`, `item`.`body`
FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
@ -55,7 +55,7 @@ function display_init(&$a) {
} }
if (count($r)) { if (count($r)) {
if ($r[0]["id"] != $r[0]["parent"]) if ($r[0]["id"] != $r[0]["parent"])
$r = q("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item` $r = qu("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item`
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
AND `id` = %d", $r[0]["parent"]); AND `id` = %d", $r[0]["parent"]);
@ -65,7 +65,7 @@ function display_init(&$a) {
// We really should change this need for the future since it scales very bad. // We really should change this need for the future since it scales very bad.
$contactid = get_contact($r[0]['owner-link'], local_user()); $contactid = get_contact($r[0]['owner-link'], local_user());
if ($contactid) { if ($contactid) {
$items = q("SELECT * FROM `item` WHERE `parent` = %d ORDER BY `id`", intval($r[0]["id"])); $items = qu("SELECT * FROM `item` WHERE `parent` = %d ORDER BY `id`", intval($r[0]["id"]));
foreach ($items AS $item) { foreach ($items AS $item) {
$itemcontactid = get_contact($item['owner-link'], local_user()); $itemcontactid = get_contact($item['owner-link'], local_user());
if (!$itemcontactid) if (!$itemcontactid)
@ -87,7 +87,7 @@ function display_init(&$a) {
$nickname = str_replace(normalise_link($a->get_baseurl())."/profile/", "", normalise_link($profiledata["url"])); $nickname = str_replace(normalise_link($a->get_baseurl())."/profile/", "", normalise_link($profiledata["url"]));
if (($nickname != $a->user["nickname"])) { if (($nickname != $a->user["nickname"])) {
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` $r = qu("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` AND `contact`.`self` LIMIT 1", WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` AND `contact`.`self` LIMIT 1",
dbesc($nickname) dbesc($nickname)
@ -228,7 +228,7 @@ function display_content(&$a, $update = 0) {
$nick = ""; $nick = "";
if (local_user()) { if (local_user()) {
$r = q("SELECT `id` FROM `item` $r = qu("SELECT `id` FROM `item`
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
AND `guid` = '%s' AND `uid` = %d", dbesc($a->argv[1]), local_user()); AND `guid` = '%s' AND `uid` = %d", dbesc($a->argv[1]), local_user());
if (count($r)) { if (count($r)) {
@ -238,7 +238,7 @@ function display_content(&$a, $update = 0) {
} }
if ($nick == "") { if ($nick == "") {
$r = q("SELECT `user`.`nickname`, `item`.`id` FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid` $r = qu("SELECT `user`.`nickname`, `item`.`id` FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
@ -251,7 +251,7 @@ function display_content(&$a, $update = 0) {
} }
} }
if ($nick == "") { if ($nick == "") {
$r = q("SELECT `item`.`id` FROM `item` $r = qu("SELECT `item`.`id` FROM `item`
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
@ -266,7 +266,7 @@ function display_content(&$a, $update = 0) {
} }
if ($item_id AND !is_numeric($item_id)) { if ($item_id AND !is_numeric($item_id)) {
$r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", $r = qu("SELECT `id` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id), intval($a->profile['uid'])); dbesc($item_id), intval($a->profile['uid']));
if ($r) if ($r)
$item_id = $r[0]["id"]; $item_id = $r[0]["id"];
@ -299,7 +299,7 @@ function display_content(&$a, $update = 0) {
if($contact_id) { if($contact_id) {
$groups = init_groups_visitor($contact_id); $groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", $r = qu("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($contact_id), intval($contact_id),
intval($a->profile['uid']) intval($a->profile['uid'])
); );
@ -316,7 +316,7 @@ function display_content(&$a, $update = 0) {
} }
} }
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", $r = qu("SELECT * FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1",
intval($a->profile['uid']) intval($a->profile['uid'])
); );
if(count($r)) if(count($r))
@ -351,7 +351,7 @@ function display_content(&$a, $update = 0) {
if($update) { if($update) {
$r = q("SELECT `id` FROM `item` WHERE `item`.`uid` = %d $r = qu("SELECT `id` FROM `item` WHERE `item`.`uid` = %d
AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `id` = %d) AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `id` = %d)
$sql_extra AND `unseen`", $sql_extra AND `unseen`",
intval($a->profile['uid']), intval($a->profile['uid']),
@ -362,7 +362,7 @@ function display_content(&$a, $update = 0) {
return ''; return '';
} }
$r = q(item_query()." AND `item`.`uid` = %d $r = qu(item_query()." AND `item`.`uid` = %d
AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `id` = %d) AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `id` = %d)
$sql_extra $sql_extra
ORDER BY `parent` DESC, `gravity` ASC, `id` ASC", ORDER BY `parent` DESC, `gravity` ASC, `id` ASC",
@ -373,7 +373,7 @@ function display_content(&$a, $update = 0) {
if(!$r && local_user()) { if(!$r && local_user()) {
// Check if this is another person's link to a post that we have // Check if this is another person's link to a post that we have
$r = q("SELECT `item`.uri FROM `item` $r = qu("SELECT `item`.uri FROM `item`
WHERE (`item`.`id` = %d OR `item`.`uri` = '%s') WHERE (`item`.`id` = %d OR `item`.`uri` = '%s')
LIMIT 1", LIMIT 1",
intval($item_id), intval($item_id),
@ -382,7 +382,7 @@ function display_content(&$a, $update = 0) {
if($r) { if($r) {
$item_uri = $r[0]['uri']; $item_uri = $r[0]['uri'];
$r = q(item_query()." AND `item`.`uid` = %d $r = qu(item_query()." AND `item`.`uid` = %d
AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `uri` = '%s' AND uid = %d) AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `uri` = '%s' AND uid = %d)
ORDER BY `parent` DESC, `gravity` ASC, `id` ASC ", ORDER BY `parent` DESC, `gravity` ASC, `id` ASC ",
intval(local_user()), intval(local_user()),
@ -462,7 +462,7 @@ function display_content(&$a, $update = 0) {
return $o; return $o;
} }
$r = q("SELECT `id`,`deleted` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1", $r = qu("SELECT `id`,`deleted` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1",
dbesc($item_id), dbesc($item_id),
dbesc($item_id) dbesc($item_id)
); );

View file

@ -122,7 +122,7 @@ function network_init(&$a) {
$search = ((x($_GET,'search')) ? escape_tags($_GET['search']) : ''); $search = ((x($_GET,'search')) ? escape_tags($_GET['search']) : '');
if(x($_GET,'save')) { if(x($_GET,'save')) {
$r = q("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1", $r = qu("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1",
intval(local_user()), intval(local_user()),
dbesc($search) dbesc($search)
); );
@ -176,7 +176,7 @@ function saved_searches($search) {
$o = ''; $o = '';
$r = q("SELECT `id`,`term` FROM `search` WHERE `uid` = %d", $r = qu("SELECT `id`,`term` FROM `search` WHERE `uid` = %d",
intval(local_user()) intval(local_user())
); );
@ -375,7 +375,7 @@ function network_content(&$a, $update = 0) {
$def_acl = array('allow_cid' => '<' . intval($cid) . '>'); $def_acl = array('allow_cid' => '<' . intval($cid) . '>');
if($nets) { if($nets) {
$r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND network = '%s' AND `self` = 0", $r = qu("SELECT `id` FROM `contact` WHERE `uid` = %d AND network = '%s' AND `self` = 0",
intval(local_user()), intval(local_user()),
dbesc($nets) dbesc($nets)
); );
@ -408,7 +408,7 @@ function network_content(&$a, $update = 0) {
if ($cid) { if ($cid) {
// If $cid belongs to a communitity forum or a privat goup,.add a mention to the status editor // If $cid belongs to a communitity forum or a privat goup,.add a mention to the status editor
$contact = q("SELECT `nick` FROM `contact` WHERE `id` = %d AND `uid` = %d AND (`forum` OR `prv`) ", $contact = qu("SELECT `nick` FROM `contact` WHERE `id` = %d AND `uid` = %d AND (`forum` OR `prv`) ",
intval($cid), intval($cid),
intval(local_user()) intval(local_user())
); );
@ -458,7 +458,7 @@ function network_content(&$a, $update = 0) {
$sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : ''); $sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : '');
if($group) { if($group) {
$r = q("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1", $r = qu("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($group), intval($group),
intval($_SESSION['uid']) intval($_SESSION['uid'])
); );
@ -479,7 +479,7 @@ function network_content(&$a, $update = 0) {
$contact_str = implode(',',$contacts); $contact_str = implode(',',$contacts);
$gcontact_str = implode(',',$gcontacts); $gcontact_str = implode(',',$gcontacts);
$self = q("SELECT `contact`.`id`, `gcontact`.`id` AS `gid` FROM `contact` $self = qu("SELECT `contact`.`id`, `gcontact`.`id` AS `gid` FROM `contact`
INNER JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl` INNER JOIN `gcontact` ON `gcontact`.`nurl` = `contact`.`nurl`
WHERE `uid` = %d AND `self`", intval($_SESSION['uid'])); WHERE `uid` = %d AND `self`", intval($_SESSION['uid']));
if (count($self)) { if (count($self)) {
@ -502,7 +502,7 @@ function network_content(&$a, $update = 0) {
} }
elseif($cid) { elseif($cid) {
$r = q("SELECT `id`,`name`,`network`,`writable`,`nurl`, `forum`, `prv`, `contact-type`, `addr`, `thumb`, `location` FROM `contact` WHERE `id` = %d $r = qu("SELECT `id`,`name`,`network`,`writable`,`nurl`, `forum`, `prv`, `contact-type`, `addr`, `thumb`, `location` FROM `contact` WHERE `id` = %d
AND `blocked` = 0 AND `pending` = 0 LIMIT 1", AND `blocked` = 0 AND `pending` = 0 LIMIT 1",
intval($cid) intval($cid)
); );
@ -600,7 +600,7 @@ function network_content(&$a, $update = 0) {
} }
else { else {
if(get_config('system', 'old_pager')) { if(get_config('system', 'old_pager')) {
$r = q("SELECT COUNT(*) AS `total` $r = qu("SELECT COUNT(*) AS `total`
FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = $sql_table.`contact-id` FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = $sql_table.`contact-id`
AND NOT `contact`.`blocked` AND NOT `contact`.`pending` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`
WHERE $sql_table.`uid` = %d AND $sql_table.`visible` AND NOT $sql_table.`deleted` WHERE $sql_table.`uid` = %d AND $sql_table.`visible` AND NOT $sql_table.`deleted`
@ -640,7 +640,7 @@ function network_content(&$a, $update = 0) {
$sql_order = "`item`.`received`"; $sql_order = "`item`.`received`";
// "New Item View" - show all items unthreaded in reverse created date order // "New Item View" - show all items unthreaded in reverse created date order
$items = q("SELECT %s FROM $sql_table $sql_post_table %s $items = qu("SELECT %s FROM $sql_table $sql_post_table %s
WHERE %s AND `item`.`uid` = %d WHERE %s AND `item`.`uid` = %d
$simple_update $simple_update
$sql_extra $sql_nets $sql_extra $sql_nets
@ -678,7 +678,7 @@ function network_content(&$a, $update = 0) {
else else
$sql_extra4 = ""; $sql_extra4 = "";
$r = q("SELECT `item`.`parent` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid` $r = qu("SELECT `item`.`parent` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid`
FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` FROM $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND NOT `contact`.`blocked` AND NOT `contact`.`pending` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`
WHERE `item`.`uid` = %d AND `item`.`visible` AND NOT `item`.`deleted` $sql_extra4 WHERE `item`.`uid` = %d AND `item`.`visible` AND NOT `item`.`deleted` $sql_extra4
@ -688,7 +688,7 @@ function network_content(&$a, $update = 0) {
intval(local_user()) intval(local_user())
); );
} else { } else {
$r = q("SELECT `thread`.`iid` AS `item_id`, `thread`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid` $r = qu("SELECT `thread`.`iid` AS `item_id`, `thread`.`network` AS `item_network`, `contact`.`uid` AS `contact_uid`
FROM $sql_table $sql_post_table STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id` FROM $sql_table $sql_post_table STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
AND NOT `contact`.`blocked` AND NOT `contact`.`pending` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`
WHERE `thread`.`uid` = %d AND `thread`.`visible` AND NOT `thread`.`deleted` WHERE `thread`.`uid` = %d AND `thread`.`visible` AND NOT `thread`.`deleted`
@ -722,7 +722,7 @@ function network_content(&$a, $update = 0) {
$items = array(); $items = array();
foreach ($parents_arr AS $parents) { foreach ($parents_arr AS $parents) {
$thread_items = q(item_query()." AND `item`.`uid` = %d $thread_items = qu(item_query()." AND `item`.`uid` = %d
AND `item`.`parent` = %d AND `item`.`parent` = %d
ORDER BY `item`.`commented` DESC LIMIT %d", ORDER BY `item`.`commented` DESC LIMIT %d",
intval(local_user()), intval(local_user()),

View file

@ -72,7 +72,7 @@ function photo_init(&$a) {
$uid = str_replace(array('.jpg','.png'),array('',''), $person); $uid = str_replace(array('.jpg','.png'),array('',''), $person);
$r = q("SELECT * FROM `photo` WHERE `scale` = %d AND `uid` = %d AND `profile` = 1 LIMIT 1", $r = qu("SELECT * FROM `photo` WHERE `scale` = %d AND `uid` = %d AND `profile` = 1 LIMIT 1",
intval($resolution), intval($resolution),
intval($uid) intval($uid)
); );
@ -102,7 +102,7 @@ function photo_init(&$a) {
} }
// check if the photo exists and get the owner of the photo // check if the photo exists and get the owner of the photo
$r = q("SELECT `uid` FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $r = qu("SELECT `uid` FROM `photo` WHERE `resource-id` = '%s' LIMIT 1",
dbesc($photo), dbesc($photo),
intval($resolution) intval($resolution)
); );
@ -112,7 +112,7 @@ function photo_init(&$a) {
// Now we'll see if we can access the photo // Now we'll see if we can access the photo
$r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `scale` <= %d $sql_extra ORDER BY scale DESC LIMIT 1", $r = qu("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `scale` <= %d $sql_extra ORDER BY scale DESC LIMIT 1",
dbesc($photo), dbesc($photo),
intval($resolution) intval($resolution)
); );

View file

@ -135,7 +135,7 @@ function proxy_init() {
$valid = true; $valid = true;
if (!$direct_cache AND ($cachefile == "")) { if (!$direct_cache AND ($cachefile == "")) {
$r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $urlhash); $r = qu("SELECT * FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $urlhash);
if (count($r)) { if (count($r)) {
$img_str = $r[0]['data']; $img_str = $r[0]['data'];
$mime = $r[0]["desc"]; $mime = $r[0]["desc"];