public function protectedQuery2()
{
/*$stmt = $this->mysqli->prepare($sql);
$stmt->bind_param('ssssd', $namePost, $datePost, $shortDescriptionPost, $descriptionPost, $actionPost);
*/
$numargs = func_num_args(); //получаем кол-во аргументов передынных функции
$arg_list = func_get_args(); //получаем значения всех аргументов
$stmt = $this->mysqli->prepare($arg_list[0]); //$arg_list[0] наш запрос
$params = array();
for ($i = 1; $i < $numargs; $i++) // баиндим их в цикле
{
$stmt->bind_param('s', $arg_list[$i]);
}
$stmt->execute();
$stmt->close();
}
Раньше все работало, если баиндить параметры, как описано в самом верху метода в комментариях. Но мне нужно передавать сюда разные запросы, с разным кол-ом параметров, сейчас ничего не получается выдает 5 строчек с надписью Warning: Wrong parameter count for mysqli_stmt::bind_param() in Z:\home\myblog\www\DataBase.php on line 55
Передаю все в этот метод вот так:
$namePost = "Имя поста";
$datePost = "Дата поста";
$shortDescriptionPost = "Описание поста";
$descriptionPost = "Полное описание поста";
$actionPost = 1;
//Добавляем данные в таблицу posts через метод класса protectedQuery (передает запрос через prepare())
$query = "INSERT INTO posts VALUES(NULL, ?, ?, ?, ?, ?)";
$db->protectedQuery2($query, $namePost, $datePost, $shortDescriptionPost, $descriptionPost, $actionPost);