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!

Reply via email to