1
0
mirror of synced 2024-12-13 14:56:01 +03:00

Doctrine_Query::where() now accepts prepared statement parameters

This commit is contained in:
zYne 2006-11-08 19:12:16 +00:00
parent 188520e946
commit 34ecd30498
3 changed files with 33 additions and 10 deletions

View File

@ -349,6 +349,13 @@ class Doctrine_Query extends Doctrine_Hydrate implements Countable {
$parser->parse($args[0]);
break;
case 'where':
if(isset($args[1])) {
if(is_array($args[1])) {
$this->params = $args[1];
} else {
$this->params = array($args[1]);
}
}
case 'having':
case 'orderby':
case 'groupby':

View File

@ -22,6 +22,7 @@ class Doctrine_Query_Where_TestCase extends Doctrine_UnitTestCase {
$this->assertEqual($users->count(), 1);
$this->assertEqual($users[0]->name, 'someone');
}
public function testDirectMultipleParameterSetting() {
$user = new User();
$user->name = 'someone.2';
@ -37,7 +38,26 @@ class Doctrine_Query_Where_TestCase extends Doctrine_UnitTestCase {
$this->assertEqual($users[0]->name, 'someone');
$this->assertEqual($users[1]->name, 'someone.2');
}
public function testDirectMultipleParameterSetting2() {
$q = new Doctrine_Query();
$q->from('User(id)')->where('User.id IN (?, ?)', array(1,2));
$users = $q->execute();
$this->assertEqual($users->count(), 2);
$this->assertEqual($users[0]->name, 'someone');
$this->assertEqual($users[1]->name, 'someone.2');
// the parameters and where part should be reseted
$q->where('User.id IN (?, ?)', array(1,2));
$users = $q->execute();
$this->assertEqual($users->count(), 2);
$this->assertEqual($users[0]->name, 'someone');
$this->assertEqual($users[1]->name, 'someone.2');
}
public function testNotInExpression() {
$q = new Doctrine_Query();

View File

@ -66,12 +66,11 @@ error_reporting(E_ALL);
print '<pre>';
$test = new GroupTest('Doctrine Framework Unit Tests');
$test->addTestCase(new Doctrine_Db_Profiler_TestCase());
/**
$test->addTestCase(new Doctrine_Db_TestCase());
$test->addTestCase(new Doctrine_Db_Profiler_TestCase());
$test->addTestCase(new Doctrine_Query_MultiJoin_TestCase());
$test->addTestCase(new Doctrine_Record_TestCase());
@ -92,12 +91,10 @@ $test->addTestCase(new Doctrine_SchemaTestCase());
$test->addTestCase(new Doctrine_ValidatorTestCase());
$test->addTestCase(new Doctrine_EventListenerTestCase());
$test->addTestCase(new Doctrine_Connection_Transaction_TestCase());
$test->addTestCase(new Doctrine_AccessTestCase());
$test->addTestCase(new Doctrine_TableTestCase());
@ -136,7 +133,7 @@ $test->addTestCase(new Doctrine_CustomResultSetOrderTestCase());
$test->addTestCase(new Doctrine_BooleanTestCase());
$test->addTestCase(new Doctrine_Record_Filter_TestCase());
//$test->addTestCase(new Doctrine_Record_Filter_TestCase());
$test->addTestCase(new Doctrine_Query_Condition_TestCase());
@ -150,17 +147,16 @@ $test->addTestCase(new Doctrine_Query_TestCase());
$test->addTestCase(new Doctrine_Query_ShortAliases_TestCase());
$test->addTestCase(new Doctrine_Query_Where_TestCase());
$test->addTestCase(new Doctrine_Query_From_TestCase());
$test->addTestCase(new Doctrine_Query_Delete_TestCase());
$test->addTestCase(new Doctrine_Query_Update_TestCase());
*/
$test->addTestCase(new Doctrine_Query_Where_TestCase());
$test->addTestCase(new Doctrine_Query_Limit_TestCase());
*/
$test->addTestCase(new Doctrine_Query_Select_TestCase());