Hi all,
I'm having multiple problems using non numeric index with Mysql and
CakePHP 1.2, specifically when it reaches a index that is a pure
number -- AFAIK, cakephp supports non numeric index.
Example: I have this table using a non numeric index:
id* (varchar) | foo (varchar)
========
xpto | null
9abc | null
9 | null
It works perfectly while making operations for the items with
id='xpto' and id='9abc', but it will not work while dealing with the
id='9' item due cakephp will use 9 instead of '9' in Mysql queries
that will take item id='9abc' too.
Here are the problems that I'm facing:
1) If I try to count the elements with id='9' it will tell me 2
instead of 1:
$id = '9';
$conditions = array('id' => $id);
$count = $this->NonNumericIndexTest->find('count',
array('conditions' => $conditions));
//it will produce a $count = 2 instead of 1 due it will consider
id='9abc' item too.
2) if I try to update item with id='9', it will update id='9abc' data
too
$id = '9';
$fields = array('foo'=>"'this should be for id=9 only'");
$conditions = array('id' => $id);
$this->NonNumericIndexTest->updateAll($fields, $conditions);
//it will update id='9abc' data too.
3) It will not allow to update id='9' data using save() due exists a
id='9abc':
$data = array();
$data['NonNumericIndex'] = array ('id' => '9',
'foo' => "'This will never be
saved due already exists a id=9abc
and id=9'");
$result = $this->NonNumericIndexTest->save($data, false);
// This will produce a $result=false and no data will be updated
4) If I try to delete id='9' item, id='9abc' will be gone too.
$this->NonNumericIndexTest->delete('9');
// items id='9' and id='9abc' are gone.
There is workarounds for item (1) for example using literal conditions
like: "`id` = '$id'" but I don't know how to make item (3) work.
I tested it on cake 1.2 beta (6311) and svn (6609) but for both
versions all 4 cases failed.
Am I doing something very wrong or this is really a bug? I prepared
some test cases and I'm thinking in issue a bug on trac for this.
...please so not suggest to use numerical index - this is not an
option for me right now.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---