За последние 24 часа нас посетили 38305 программистов и 1722 робота. Сейчас ищут 614 программистов ...

Пожготовка sql запроса

Тема в разделе "PHP для новичков", создана пользователем Ігор, 26 фев 2009.

  1. Ігор

    Ігор Активный пользователь

    С нами с:
    7 апр 2008
    Сообщения:
    195
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. .....
    4. protected function getAddQuery($dbarr, $tablename, $prefix)
    5. {
    6.     $this->split_query_array($dbarr, $colums, $values, $prefix);
    7.       $ret  = "INSERT INTO $tablename \n\t(";
    8.     $ret .= implode(", \n\t",$colums);
    9.     $ret .= ") \n VALUES \n\t(";
    10.     $ret .= implode(", \n\t",$values);
    11.     $ret .= ");";
    12.     return  $ret;
    13. }
    14.  
    15. private function split_query_array($arr, &$k,  &$v, $pr)
    16. {
    17.      //Ключи станут именами колонок
    18.     $k=array_keys($arr);
    19.     array_walk($k, array($this, 'addArray_prefix'), $pr);
    20.  
    21.     //Значения -- вносимыми значеними
    22.     $v=array_values($arr);
    23.     array_walk($v, array($this, 'addArray_quote'));
    24. }
    25. private function addArray_quote (&$arr, $key)
    26. {
    27.     $arr = "'$arr'";
    28. }
    29. private function  addArray_prefix (&$arr, $key, $prefix)
    30. {
    31.     $arr = $prefix.$arr;
    32. }
    33. ...?>
    функция получает ассоцаитивный массив, имя таблицы и префикс для каждой колонки
    На одном формуме мне сказали, что так нехорошо. Но похожее встречается в simplemachine
    А вы что думаете по этому поводу?
    Мне толко не нравиться, что нужно разбить массив на ключи и значения и обработать их отдельно. Т.Е. хотелось бы обработать array_walk изначальный массив (сразу ключи и значения) а не по отдельности :)
     
  2. shreck

    shreck Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Возьми библиотеку Котерова на dklab.ru и не изобретай велосипед!