Re: Problem with mysqli_bind_param

[email protected] ("Christoph M. Becker")
Newsgroups php.general
Message-ID <[email protected]>
On 30.01.2017 at 16:22, Diogo Neves wrote:

> I don't know if its a bug, a feature or just me being idiotic ( i don't
> really discarded that yet )... but...
> 
> This is a small piece of my code.
> 
>         if ( !empty( $types )) {
>             $tmp = Array( $types );
>             foreach( $array as $key => $value ) {
>                 $tmp[] = &$array[ $key];
>             }
> 
>             call_user_func_array( array( $stmt, 'bind_param' ), $tmp );
>         }
> 
> My problem was i get NULL on return of call_user_func_array... i tracked it
> back to $stmt->bind_param( $types, $array[0], $array[1], $array[2] );
> 
> Then after all and some reading i found i was screwing up, yet, returning
> null should be the right return?
> 
> I ask because it says nothing about NULL on
> http://php.net/manual/en/mysqli-stmt.bind-param.php. Yet if i send
> something that isn't a string in $types ( my screw up, anyway ) it don't
> return false as i expected.

From the PHP manual[1]:

| If the parameters given to a function are not what it expects, such
| as passing an array where a string is expected, the return value of
| the function is undefined. In this case it will likely return NULL
| but this is just a convention, and cannot be relied upon.

This behavior is deliberately not documented for each individual
built-in function.

[1] <http://php.net/manual/en/functions.internal.php>

-- 
Christoph M. Becker
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.