Re: Problem with mysqli_bind_param
| From: | Christoph M. Becker | Date: | Mon, 30 Jan 2017 15:37:54 +0000 |
| Subject: | Re: Problem with mysqli_bind_param | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-325952@lists.php.net to get a copy of this message | ||
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