В языке C# можно писать так: Код (Text): string name = "Donald"; string time = "day"; Console.WriteLine("Hello {0} good {1}", name, time); В итоге {0} заменится на name, т.е. на "Donald", а {1} на "day" и результат будет "Hello Donald good day", есть ли что то подобное в языке PHP? еще вопрос во встроенных функция есть такая штука, короче сколько угодно параметров можно вставить, например в Код (Text): isset($one, $two, $three, ........); для чего мне все это нужно, хочу сделать функцию, функция будет соединятся с БД, отправлять запрос и возвращать результат примерно это как то так будет выглядеть первый параметр это запрос в виде "SELECT * FROM auth WHERE {0}='{1}' AND {2}='{3}'" Второй параметр это как раз набор переменных, которые будут подставляться за место {0}, {1}, {2}, {3} примерно как то так.
Интересно, а такой вариант подойдет? Код (Text): $param1 = "id"; $value1 = 100; $param1 = "cost"; $value1 = 125; $result = "SELECT * FROM auth WHERE {$param1}='{$value1}' AND {$param2}='{$value2}'";
Это как бы основы основ же ж Код (PHP): $result = "SELECT * FROM auth WHERE `$param1`='$value1' AND `$param2`='$value2'"; Добавлено спустя 44 секунды: там совсем не то что вы думаете
хм.. странно, как не то: Код (Text): // записываем в массив $args все полученные функцией параметры $args = func_get_args(); // вытаскиваю первый аргумент, это у нас будет запроса, для замены '?' на '%s' $query = array_shift($args); //меняем '?' на '%s' $query = str_replace('?', '%s', $query); // потом экранируем все параметры кроме $query // ... // засовываем $query обратно array_unshift($args,$query); // после чего меняем все '%s' на конкретные значения $query = call_user_func_array('sprintf',$args); // ну а дальше выполняем запрос // ... где тут не так происходит как, как описано? (я проверял, работает, запрос нормально составляется, экранируется) единственно мутное место это: Код (Text): $query = call_user_func_array('sprintf',$args); не получается тут обойтись без этой call_user_func_array и еще вопрос, вообще в оригинале так написано: Код (Text): $query = str_replace(array('%','?'), array('%%','%s'), $query); зачем менять '%' на '%%'?