1. PHP / Говнокод #5490

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?
    function dbQuery($query)
    {
    	$arg = func_get_args();
    	unset($arg[0]);
    	for ($i=1; $i<sizeof($arg); $i++) {
    		$arg[$i] = mysql_real_escape_string($arg[$i]);
    	}
    	$sql = vsprintf($query, $arg);
    	return mysql_query($sql) or die (mysql_error());
    }

    Запостил: qbasic, 02 Февраля 2011

    Комментарии (12) RSS

    • > mysql_query($sql) or die (mysql_error());
      самая прикольная конструкция - немедля умирать, но выдавать отчет всему миру
      Ответить
      • это я ответ писал на форуме на пост на форуме о том что такое sql инъекции и как бороться с ними.
        Ответить
    • foreach? не, не слышал.
      а про array_map и подавно
      Ответить
      • бытует мнение, foreach медленнее.
        Ответить
        • медленнее чем "for ($i=1; $i<sizeof($arg); $i++) "?
          попробуйте массив на 1м элементов перебрать :)
          Ответить
        • это мнение ошибочно:
          ini_set('memory_limit', '2G');
          $array = array_fill(0, 10000000, 1);
          $start = microtime(true);
          $pad = 25;
          
          for($i = 0; $i < sizeof($array); $i++);
          echo str_pad('brute force ', $pad) . round(( - $start + ($start = microtime(true)) ), 2) . "sec\r\n";
          
          for($i = 0; $i < sizeof($array); $i++) $array[$i];
          echo str_pad('brute force with item', $pad) . round(( - $start + ($start = microtime(true)) ), 2) . "sec\r\n";
          
          for($i = 0, $l = sizeof($array); $i < $l; $i++);
          echo str_pad('gentle force ', $pad) . round(( - $start + ($start = microtime(true)) ), 2) . "sec\r\n";
          
          for($i = 0, $l = sizeof($array); $i < $l; $i++) $array[$i];
          echo str_pad('gentle force with item ', $pad) . round(( - $start + ($start = microtime(true)) ), 2) . "sec\r\n";
          
          foreach($array as $smth) $smth; 
          echo str_pad('foreach ', $pad) . round(( - $start + ($start = microtime(true)) ), 2) . "sec\r\n";
           
          foreach($array as $smth) $smth; 
          echo str_pad('foreach with item', $pad) . round(( - $start + ($start = microtime(true)) ), 2) . "sec\r\n";


          вывод:
          brute force              1.94sec
          brute force with item    1.99sec
          gentle force             0.62sec
          gentle force with item   0.66sec
          foreach                  0.38sec
          foreach with item        0.38sec


          P.S. PHP 5.2.9, запускалось на Core [email protected]
          Ответить
          • Я не утверждал что это мнение верное я сказал оно есть
            Ответить
        • Особой разницы в скорости не будет, т.к. обычно все тормоза находятся в логике.
          Ответить
      • вот посмотрел щас на array_map))
        да есть такое
        Ответить
    • А... понял, это же подготовленные запросы.
      Ответить
    • о свой код увидел )))
      объясните как в foreach первый аргумент удалить
      Ответить
    • Вот это я понимаю prepared statement.
      Пиздец.
      Ответить

    Добавить комментарий