2016-11-21 2 views
1

Возможно ли использовать bind_param() с массивами?PHP bind_param с массивами

Например

$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'))); 

ли какие-либо из этих примеров возможных в PHP (или любые другие примеры)?

Наконец-то я могу использовать свою функцию/класс

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

Функция 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)" 
*/ 

Мой проект выйдет на GitHub очень скоро :) Большое спасибо!

+1

Я не верю, что это возможно. Но может быть неправильно. Попробуй их и посмотри? –

+0

Спасибо за помощь @YourCommonSense, теперь сделано редактирование, чтобы объяснить, почему мне нужно это для работы с массивами –

ответ

4

Если PHP не устарел (> = 5,6, а именно), просто добавьте три точки в первом примере,

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

У меня будет попытка –

+0

Могу ли я сделать $ stmt-> bind_param ($ identifiers, ... $ array) ; ' –

+0

Вы только что сказали, что попробуете. Не так ли? –

-1

На самом деле вы можете сделать еще лучше, если у вас есть массив, { «пользователя» => 'John', 'age' => '20'}, и в вашем заявлении вы помещаете параметры с тем же именем:: name,: age, вы можете передать этот массив в качестве параметра в методе execute, прекрасно свяжется

+0

Неправильно, это для PDO, а не MySQLi –

+0

Я даже не думаю, что это сработает для PDO –

+0

Добро пожаловать в SO кстати –