mirror of
https://github.com/moodle/moodle.git
synced 2025-08-03 16:13:28 +02:00
Merged postgresql fixes from MOODLE_14_STABLE(Revision 1.2.4.1) to HEAD.
This commit is contained in:
parent
4dce0cf8b4
commit
2b92c040c8
1 changed files with 58 additions and 31 deletions
|
@ -32,7 +32,7 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
*/
|
*/
|
||||||
# Ugly, but we need to choose which wiki we are about to change/read
|
# Ugly, but we need to choose which wiki we are about to change/read
|
||||||
case "GET":
|
case "GET":
|
||||||
$id = "'" . mysql_escape_string($args["id"]) . "'";
|
$id = "'" . anydb_escape_string($args["id"]) . "'";
|
||||||
($version = 0 + @$args["version"]) and ($version = "AND (version=$version)") or ($version="");
|
($version = 0 + @$args["version"]) and ($version = "AND (version=$version)") or ($version="");
|
||||||
|
|
||||||
# $result = mysql_query("SELECT * FROM " . EWIKI_DB_TABLE_NAME
|
# $result = mysql_query("SELECT * FROM " . EWIKI_DB_TABLE_NAME
|
||||||
|
@ -69,10 +69,10 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
with "id" index key.
|
with "id" index key.
|
||||||
*/
|
*/
|
||||||
case "HIT":
|
case "HIT":
|
||||||
#mysql_query("UPDATE " . EWIKI_DB_TABLE_NAME . " SET hits=(hits+1) WHERE pagename='" . mysql_escape_string($args["id"]) . "'");
|
#mysql_query("UPDATE " . EWIKI_DB_TABLE_NAME . " SET hits=(hits+1) WHERE pagename='" . anydb_escape_string($args["id"]) . "'");
|
||||||
# set_field does not work because of the "hits+1" construct
|
# set_field does not work because of the "hits+1" construct
|
||||||
#print "DO ".mysql_escape_string($args["id"]); exit;
|
#print "DO ".anydb__escape_string($args["id"]); exit;
|
||||||
execute_sql("UPDATE " .$CFG->prefix.EWIKI_DB_TABLE_NAME . " SET hits=(hits+1) WHERE pagename='" . mysql_escape_string($args["id"]) . "' and wiki=".$wiki_entry->id, 0);
|
execute_sql("UPDATE " .$CFG->prefix.EWIKI_DB_TABLE_NAME . " SET hits=(hits+1) WHERE pagename='" . anydb_escape_string($args["id"]) . "' and wiki=".$wiki_entry->id, 0);
|
||||||
break;
|
break;
|
||||||
/* Stores the $data array into the database, while not overwriting
|
/* Stores the $data array into the database, while not overwriting
|
||||||
existing entries (using WRITE); returns 0 on failure and 1 if
|
existing entries (using WRITE); returns 0 on failure and 1 if
|
||||||
|
@ -98,7 +98,7 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
# }
|
# }
|
||||||
# $a = ($sql1 ? ', ' : '');
|
# $a = ($sql1 ? ', ' : '');
|
||||||
# $sql1 .= $a . $index;
|
# $sql1 .= $a . $index;
|
||||||
# $sql2 .= $a . "'" . mysql_escape_string($value) . "'";
|
# $sql2 .= $a . "'" . anydb_escape_string($value) . "'";
|
||||||
#}
|
#}
|
||||||
|
|
||||||
#strlen(@$COMMAND) || ($COMMAND = "INSERT");
|
#strlen(@$COMMAND) || ($COMMAND = "INSERT");
|
||||||
|
@ -107,7 +107,7 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
if (is_int($index)) {
|
if (is_int($index)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$args[$index] =mysql_escape_string($value);
|
$args[$index] =anydb_escape_string($value);
|
||||||
}
|
}
|
||||||
$args["wiki"]=$wiki_entry->id;
|
$args["wiki"]=$wiki_entry->id;
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
if (strlen($id)) {
|
if (strlen($id)) {
|
||||||
$r[$id] = 0;
|
$r[$id] = 0;
|
||||||
$select .= ($select ? " OR " : "") .
|
$select .= ($select ? " OR " : "") .
|
||||||
"(pagename='" . mysql_escape_string($id) . "')";
|
"(pagename='" . anydb_escape_string($id) . "')";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($select) {
|
if($select) {
|
||||||
|
@ -181,17 +181,21 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
e.g. array("flags","meta","lastmodified");
|
e.g. array("flags","meta","lastmodified");
|
||||||
*/
|
*/
|
||||||
case "GETALL":
|
case "GETALL":
|
||||||
|
switch ($CFG->dbtype) {
|
||||||
#$result = mysql_query("SELECT pagename AS id, ".
|
case 'postgres7':
|
||||||
# implode(", ", $args) .
|
|
||||||
# " FROM ". EWIKI_DB_TABLE_NAME .
|
|
||||||
# " GROUP BY id, version DESC"
|
|
||||||
#);
|
|
||||||
$sql= "SELECT pagename AS id, ".
|
$sql= "SELECT pagename AS id, ".
|
||||||
implode(", ", $args) .
|
implode(", ", $args) .
|
||||||
" FROM ". $CFG->prefix.EWIKI_DB_TABLE_NAME .
|
" FROM ". $CFG->prefix.EWIKI_DB_TABLE_NAME .
|
||||||
" WHERE wiki = ".$wiki_entry->id.
|
" WHERE wiki = ".$wiki_entry->id.
|
||||||
" GROUP BY id, version";
|
" GROUP BY pagename, ".implode(", ", $args);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$sql= "SELECT pagename AS id, ".
|
||||||
|
implode(", ", $args) .
|
||||||
|
" FROM ". $CFG->prefix.EWIKI_DB_TABLE_NAME .
|
||||||
|
" WHERE wiki = ".$wiki_entry->id.
|
||||||
|
" GROUP BY id, version " ;
|
||||||
|
}
|
||||||
|
|
||||||
#print "$sql";
|
#print "$sql";
|
||||||
$result=get_records_sql($sql);
|
$result=get_records_sql($sql);
|
||||||
|
@ -231,19 +235,24 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
$field = implode("", array_keys($args));
|
$field = implode("", array_keys($args));
|
||||||
$content = strtolower(implode("", $args));
|
$content = strtolower(implode("", $args));
|
||||||
if ($field == "id") { $field = "pagename"; }
|
if ($field == "id") { $field = "pagename"; }
|
||||||
|
switch ($CFG->dbtype) {
|
||||||
#$result = mysql_query("SELECT pagename AS id, version, flags" .
|
case 'postgres7':
|
||||||
# (EWIKI_DBQUERY_BUFFER && ($field!="pagename") ? ", $field" : "") .
|
|
||||||
# " FROM " . EWIKI_DB_TABLE_NAME .
|
|
||||||
# " WHERE LOCATE('" . mysql_escape_string($content) . "', LCASE($field)) " .
|
|
||||||
# " GROUP BY id, version DESC"
|
|
||||||
#);
|
|
||||||
$sql= "SELECT pagename AS id, version, flags" .
|
$sql= "SELECT pagename AS id, version, flags" .
|
||||||
(EWIKI_DBQUERY_BUFFER && ($field!="pagename") ? ", $field" : "") .
|
(EWIKI_DBQUERY_BUFFER && ($field!="pagename") ? ", $field" : "") .
|
||||||
" FROM " . $CFG->prefix.EWIKI_DB_TABLE_NAME .
|
" FROM " . $CFG->prefix.EWIKI_DB_TABLE_NAME .
|
||||||
" WHERE LOCATE('" . mysql_escape_string($content) . "', LCASE($field)) and wiki=".$wiki_entry->id .
|
" WHERE $field ILIKE '%".$content."%' and wiki=".$wiki_entry->id .
|
||||||
|
" GROUP BY id, version, flags ".
|
||||||
|
(EWIKI_DBQUERY_BUFFER && ($field!="pagename") ? ", $field" : "") ;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$sql= "SELECT pagename AS id, version, flags" .
|
||||||
|
(EWIKI_DBQUERY_BUFFER && ($field!="pagename") ? ", $field" : "") .
|
||||||
|
" FROM " . $CFG->prefix.EWIKI_DB_TABLE_NAME .
|
||||||
|
" WHERE LOCATE('" . anydb_escape_string($content) . "', LCASE($field)) and wiki=".$wiki_entry->id .
|
||||||
" GROUP BY id, version DESC";
|
" GROUP BY id, version DESC";
|
||||||
|
}
|
||||||
$result=get_records_sql($sql);
|
$result=get_records_sql($sql);
|
||||||
|
|
||||||
$r = new ewiki_dbquery_result(array("id","version",$field));
|
$r = new ewiki_dbquery_result(array("id","version",$field));
|
||||||
$drop = "";
|
$drop = "";
|
||||||
#while ($result && ($row = mysql_fetch_array($result, MYSQL_ASSOC))) {
|
#while ($result && ($row = mysql_fetch_array($result, MYSQL_ASSOC))) {
|
||||||
|
@ -265,7 +274,7 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
|
|
||||||
|
|
||||||
case "DELETE":
|
case "DELETE":
|
||||||
$id = mysql_escape_string($args["id"]);
|
$id = anydb_escape_string($args["id"]);
|
||||||
$version = $args["version"];
|
$version = $args["version"];
|
||||||
|
|
||||||
#mysql_query("DELETE FROM " . EWIKI_DB_TABLE_NAME ."
|
#mysql_query("DELETE FROM " . EWIKI_DB_TABLE_NAME ."
|
||||||
|
@ -299,3 +308,21 @@ function ewiki_database_moodle($action, &$args, $sw1, $sw2) {
|
||||||
|
|
||||||
return($r);
|
return($r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function anydb_escape_string($s) {
|
||||||
|
global $CFG ;
|
||||||
|
$type = ($CFG->dbtype);
|
||||||
|
switch ($CFG->dbtype) {
|
||||||
|
case 'mysql':
|
||||||
|
$s = mysql_escape_string($s);
|
||||||
|
break;
|
||||||
|
case 'postgres7':
|
||||||
|
$s = pg_escape_string($s);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$s = addslashes($s);
|
||||||
|
}
|
||||||
|
|
||||||
|
return($s);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue