Получение запроса на основании массива

ekkl

Новичок
Получение запроса на основании массива

Использую PDO SQLite3
Идея такова сделать функцию, которая будет "Изготавливать запрос" на основании ключей масива и соответствующих данных
PHP:
public function arrayexec($tablename, $data){

$k=array_keys($data);
$v=array_values($data);
array_walk($k, array(__CLASS__, addquote));
$colum=implode(', ',$k);


$res=$this->prepare ("INSERT INTO $tablename ($colum) VALUES (??????)");
//Что должно быть в скобках VALUES. знаки вопроса разделенные запятыми, вызывается ошибка...
$res->execute($v);

}

public function addquote(&$data){
return '`'.$data.'`';
}
 

Фанат

oncle terrible
Команда форума
а массив, разумеется, мы получаем из хатэмээл формы
 

ekkl

Новичок
Ну да. Только не полностью
PHP:
 $arr['name']=$_POST['name'];
 $arr['title']=($_POST['title'] ? $_POST['title'] : $arr['name'];
 $arr['user']=$this->user['username'];
 $arr['res']=sha1(serialize($_SERVER));
 $arr['file']=$_FILES['file_name'];
 if (file_exists($datapath.$arr['file'])
  $this->geterateufilename($arr['file']);
 ......
Допустим так.
Что плохо?
 

Фанат

oncle terrible
Команда форума
ну, здесь массив $arr не из формы совсем.

-~{}~ 06.10.09 16:15:

а в чем вопрос изначально?
что должно быть в скобках, надо смотреть в документации на используемую библиотеку.
 

ekkl

Новичок
Знаки вопроса, разделенные запятыми в том же количестве, что и число элементов массива.
Иначе: нужно сформировать строку, содержащую (N) ?, разделенных знаком (,)
 

ekkl

Новичок
Можно и циклы.
Думал еще создать массив из N элементов (?), потом
PHP:
implode ('? ', $arr0)
Вопрос в основном был в мом, насколько хорош или плох такой подход (сборка в массиве)
Простота в том, что не нужно писать функцию для добавления записи для каждого раздела.
 

Фанат

oncle terrible
Команда форума
Нормальный подход. На вставку и апдейт запросы составлять - милое дело.
Главное, чтобы имена полей не от пользователя шли.
 
Сверху