Search code examples
phpmysqliprepared-statementbindparam

PHP bind_param with arrays


Is it possible to use bind_param() with arrays?

For example

$stmt->bind_param('iss', Array(101, 'SomeString 1', 'Some string 2'));
// OR
$stmt->bind_param(Array('iss'), Array(101, 'String1', 'String2'));
// OR
$stmt->bind_param(Array( Array('i', 101), Array('s', 'String1'), Array('s', 'String2') ));

Is any of these examples possible in PHP (or any other examples)?

Finally I can use my function/class

$sql->upload( $table, Array('n;id', 's;username=' . $username, 's;password=' . $password) );

Function explination

public function upload( String $table , Array $values )

// Where example array could be Array('s;column=someString', 'i;SomeIntegerColumn=10', 'n;SomeID')
/*
    identifier;column=value
    Basically where identifier can be "n", "d", "i" or "s"
    column is the name of the sql column to inset the value to
    value is the string/integer/double to instert in the the column

    Example query with the array mentioned above would be
    "INSERT INTO $table(column, SomeIntegerColumn, SomeID) VALUES(?, ?, NULL)"
*/

My project will be out on GitHub really soon :) Thanks a lot!


Solution

  • If your PHP is not outdated (>= 5.6 namely), just add three dots to the first example,

    $stmt->bind_param('iss', ...array(101, 'SomeString 1', 'Some string 2'));