On Dec 16, 2011, at 4:51 PM, David Harkness wrote:
> Each *value* in the array must be a reference to an existing variable--they
> cannot be null or direct values.
[snip]
Thank you very much for your explanation and example code. I was missing the
fact that the *values* in the array must be references. I was thinking that
call_user_func_array wanted a reference to the array itself where I wanted the
values stored, but when I tried doing
call_user_func_array(array($ps, 'bind_result'), &$params);
I got the following deprecation notice so I knew I was on the wrong track but
didn't know where I was going wrong:
Warning: Call-time pass-by-reference has been deprecated in
/Applications/apache/htdocs/hila/includes/class.AbstractModel.php on line 176
In the course of studying your example and trying to get it to work I also
discovered a problem elsewhere in my code where the value of the primary key
field in my MySQL database, defined as
`user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT
was being returned to PHP as a string instead of an int, and this was causing a
type mismatch that ultimately resulted in all fields of the results array being
populated with NULLs, which is why all of the examples on the pages I Googled
did not appear to be working for me.
In the end I changed the relevant part of my code to the following and thanks
to your help it is now working:
$params = array();
$values = array();
foreach ($metadata as $object) {
$params[] = &$values[$object->orgname];
}
call_user_func_array(array($ps, 'bind_result'), $params);
$ps->fetch();
print "<pre>";
var_dump($values);
print "</pre>";
Thanks again and happy holidays!