Спорность в том "что нужно меньше знать, и это проще". Спорно потому, что это основывается на субъективном опыте. Кому-то проще, кому-то - наоборот. 
	 | 
	
		
 x-yuri, 
	Invis1ble, evgh, Следил за Вашими прениями, но в действительности предложеного мной варианта должно быть достаточно) Кстати может есть рекомендации по хорошему ресурсу о безопасности?  | 
	
		
 Цитата: 
	
 Цитата: 
	
  | 
	
		
 x-yuri, 
	Я говорю о том, что когда я вижу некий метод мне нужно либо уже знать его, либо лезть в кишки и узнавать, либо штудировать мануалы. Вы ведь не используете вслепую чьи-то наработки? И так как фреймворков и библиотек великое множество - то такое упрятывание деталей мне не то что не помагает, а наоборот мешает. Вместо того чтобы знать одну единственную функцию mysql_real_escape_string() и быть счастливым. ПС. Вот приходит мне щас письмо на почту по подписке на одном ресурсе: [PHP Classes] Added a new class: Basic SQL Injection Protection И спрашивается, нафига мне их класс? По сути, ради одной функции? :) Вы скажете, нет, там с помощью него можно еще корованы грабить! Предположим, это очень полезная для меня функция и я всегда мечтал это сделать, но чтобы убедиться в том, что этот класс действительно умеет грабить корованы, а не какую-то бяку - мне все равно надо лезть в кишки и изучать :) Хорошо, что в письме сразу идет описание: Цитата: 
	
 В топку такой класс.... ППС. Цитата: 
	
 Довольно сумбурно выразился, но надеюсь моя основная мысль ясна.  | 
	
		
 Цитата: 
	
  | 
	
		
 ну приведение к типам еще, в корне ситуация все равно не меняется. Или я чего-то не знаю oO ? 
	 | 
	
		
 Цитата: 
	
 Цитата: 
	
 кроме того, если фреймворк скорее мешает, чем помогает, значит он, как минимум тебе не подходит. Возможно, это просто плохой фреймворк. Возможно, для твоей задачи не нужен фреймворк. Но, возможно, дело в тебе потом, для простых задач можно обойтись без фреймворков. Но для достаточно сложных без них не обойтись. (ты же не будешь утверждать, что надо все писать на ассемблере?) И выхода два - либо воспользоваться существующим фреймворком, либо изобрести свой. Если ты в состоянии реализовать второй вариант - хорошо. Если не в состоянии, но ты это сделал - это хуже, чем первый вариант. Цитата: 
	
 хотя я так понял, дело именно в чужом коде. Может тебе приходилось слишком много заниматься поддержкой кода, написанного на каком-нибудь неоправданно сложном для задачи фреймворке? а в случае с экранированием разница действительно незначительна. Но ведь если расширение  | 
	
		
 Invis1ble, 
	Я тебе приведу пример, а ты уж дальше сам скажи что использовать приятней и легче и ... ну в общем думаю будет понятно. Выборка всех полей из таблицы в json с применением PDO: $r = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); echo json_encode($r); и теперь без: 
$arr = array();
$s = mysql_query($sql);
while($r = mysql_fetch_assoc($s)){
   $arr[] = '{ "id": "'.$r['id'].'", "title": "'.$r['title'].'", "content":"'.$r['content'].'"}';
} //здесь опущено экранирование переносов строк в content и title
echo '['.implode(",",$arr).']';
или вот так: 
function mysql2json($mysql_result,$name) {
$result = array($name => array());
while ($row = mysql_fetch_assoc($mysql_result))
$result[$name][] = $row;
return json_encode($result);
}
или вот так: 
function mysql2json($mysql_result,$name){
     $json="{\n\"$name\": [\n";
     $field_names = array();
     $fields = mysql_num_fields($mysql_result);
     for($x=0;$x<$fields;$x++){
          $field_name = mysql_fetch_field($mysql_result, $x);
          if($field_name){
               $field_names[$x]=$field_name->name;
          }
     }
     $rows = mysql_num_rows($mysql_result);
     for($x=0;$x<$rows;$x++){
          $row = mysql_fetch_array($mysql_result);
          $json.="{\n";
          for($y=0;$y<count($field_names);$y++) {
               $json.="\"$field_names[$y]\" :	\"$row[$y]\"";
               if($y==count($field_names)-1){
                    $json.="\n";
               }
               else{
                    $json.=",\n";
               }
          }
          if($x==$rows-1){
               $json.="\n}\n";
          }
          else{
               $json.="\n},\n";
          }
     }
     $json.="]\n};";
     return($json);
}
 | 
	
		
 вообще-то это не честный пример. Должно быть как-то так: 
	
$r = mysql_query($sql);
$rows = array();
while ($row = mysql_fetch_assoc($r))
    $rows[] = $row;
echo json_encode($rows);
 | 
	
		
 Цитата: 
	
 а выровнять в одну строку? :) и я против опускания {} echo json_encode($pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC));  | 
| Часовой пояс GMT +3, время: 12:04. |