Спасибо за ответы.
Дело в том что я хотел написать функцию с помошью которой можно былобы нормально получать массив, без $stmt->bind_result работать с которым не очень удобно.
Проблема в том что, чтобы выполнить Execute вначале в запрос нужно передать параметры которые подвержены:
// пришло из гета
$_GET['id'] = 3;
$_GET['name'] = "fff'; DROP TABLE child;--";
$_GET['alias'] = "мммм";
//подготавливаем запрос
$query = "PREPARE prQuery FROM 'SELECT `id` FROM `article` WHERE `id` = ? && `name` = ? && `alias` = ?';";
// связываем данные
$querySet = "SET @varData1 = $_GET['id']; SET @varData2 = '$_GET['name']'; SET @varData3 = '$_GET['alias']';";
получается:
SET @varData1 = 3; SET @varData2 = 'fff'; DROP TABLE child;--'; SET @varData3 = 'мммм';
// multi_query потому что по одной долбить сервер нет смысла особенно если переменных будет много
// возможно $stmt->bind_param делает тоже самое только с экранированием
$mysqli->multi_query($querySet); // и табличке кирдык
$queryExecute = "EXECUTE prQuery USING @varData1, @varData2, @varData3;";