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