MDL-24079 finally the sql_ilike() is deprecated

This commit is contained in:
Petr Skoda
2010-09-04 14:23:50 +00:00
parent e99cfeb83f
commit 2f8eea3415
3 changed files with 20 additions and 5 deletions
+2 -2
View File
@@ -1749,7 +1749,7 @@ abstract class moodle_database {
*/
public function sql_like($fieldname, $param, $casesensitive = true, $accentsensitive = true, $escapechar = '\\') {
if (strpos($param, '%') !== false) {
debugging('Potential SQL injection detected, sql_ilike() expects bound parameters (? or :named)');
debugging('Potential SQL injection detected, sql_like() expects bound parameters (? or :named)');
}
// by default ignore any sensitiveness - each database does it in a different way
return "$fieldname LIKE $param ESCAPE '$escapechar'";
@@ -1778,7 +1778,7 @@ abstract class moodle_database {
* @return string
*/
public function sql_ilike() {
//TODO: debugging('sql_ilike() is deprecated, please use sql_like() instead');
debugging('sql_ilike() is deprecated, please use sql_like() instead');
return 'LIKE';
}
+1 -1
View File
@@ -1067,7 +1067,7 @@ class pgsql_native_moodle_database extends moodle_database {
}
public function sql_ilike() {
//TODO: debugging('sql_ilike() is deprecated, please use sql_like() instead');
debugging('sql_ilike() is deprecated, please use sql_like() instead');
return 'ILIKE';
}
+17 -2
View File
@@ -2207,6 +2207,9 @@ class dml_test extends UnitTestCase {
}
function test_sql_ilike() {
global $CFG;
// note: this is deprecated, just make sure it does not throw error
$DB = $this->tdb;
$dbman = $DB->get_manager();
@@ -2223,10 +2226,22 @@ class dml_test extends UnitTestCase {
$DB->insert_record($tablename, array('name'=>'NoDupor'));
$DB->insert_record($tablename, array('name'=>'ouch'));
// make sure it prints debug message
$olddebug = $CFG->debug; // Save current debug settings
$olddisplay = $CFG->debugdisplay;
$CFG->debug = DEBUG_DEVELOPER;
$CFG->debugdisplay = true;
ob_start(); // hide debug warning
$sql = "SELECT * FROM {".$tablename."} WHERE name ".$DB->sql_ilike()." ?";
$params = array("%dup_r%");
$records = $DB->get_records_sql($sql, $params);
$this->assertEqual(count($records), 2, 'DB->sql_ilike() is deprecated, ignore this problem.');
ob_end_clean();
$debuginfo = ob_get_contents();
$CFG->debug = $olddebug; // Restore original debug settings
$CFG->debugdisplay = $olddisplay;
$this->assertFalse($debuginfo === '');
// following must not throw exception, we ignore result
$DB->get_records_sql($sql, $params);
}
function test_sql_concat() {