MDL-17020 dml: native pgsql driver - $ bound syntax fully implemented, we do not need string for exception anymore

This commit is contained in:
skodak 2008-10-27 12:00:04 +00:00
parent e4f9c142f1
commit 935956b8c2
2 changed files with 11 additions and 3 deletions

View file

@ -11,7 +11,6 @@ $string['blockcannotconfig'] = 'This block does not support global configuration
$string['blocknameconflict'] = 'Naming conflict: block $a->name has the same title with an existing block: $a->conflict!';
$string['backupcontainexternal'] = 'This backup file contains external Moodle Network Hosts that are not configured locally';
$string['backuptablefail'] = 'Backup tables could NOT be set up successfully!';
$string['boundsyntaxnotsupport'] = 'Pg \$1, \$2 bound syntax not supported yet :-(';
$string['cannotassignanthing'] = 'Cannot assign moodle/site:doanything';
$string['cannotassignrole'] = 'Cannot assign role in course';
$string['cannotassignselfasparent'] = 'Cannot assign self as parent!';

View file

@ -431,8 +431,17 @@ abstract class moodle_database {
} else if ($type == SQL_PARAMS_DOLLAR) {
if ($target_type & SQL_PARAMS_DOLLAR) {
return array($sql, array_values($params), SQL_PARAMS_DOLLAR); // 0-based required
} else {
throw new dml_exception('boundsyntaxnotsupport');
} else if ($target_type & SQL_PARAMS_QM) {
$sql = preg_replace('/\$[0-9]+/', '?', $sql);
return array($sql, array_values($params), SQL_PARAMS_QM); // 0-based required
} else { //$target_type & SQL_PARAMS_NAMED
$sql = preg_replace('/\$([0-9]+)/', ':param\\1', $sql);
$finalparams = array();
foreach ($params as $key=>$param) {
$key++;
$finalparams['param'.$key] = $param;
}
return array($sql, $finalparams, SQL_PARAMS_NAMED);
}
} else { // $type == SQL_PARAMS_QM