Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: работа с pdo

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Ex
Отправлено: 04 Мая, 2014 - 12:06:40
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




только учусь использовать pdo.

и вот возник вопрос, вот прежде чем вносить что то в бд, нужно обработать данные, что ввел пользователь. У меня такой код (пока все по простому, ток учусь Улыбка :
PHP:
скопировать код в буфер обмена
  1. include ('connect.php');
  2.  
  3. $sql = $db->prepare('INSERT INTO people (name) VALUES (:name)');
  4. $sql->bindParam(":name", $name);
  5.  
  6. $name = 'Имя';
  7. $name = $db->quote($name);
  8. $sql->execute();
  9.  
  10. $db = NULL;
  11.  


А это вывод инфы
PHP:
скопировать код в буфер обмена
  1. include ('connect.php');
  2.  
  3. $sql = 'SELECT * FROM people';
  4. $result = $db->query($sql);
  5.  
  6. foreach($result as $row) {echo $row['id'] . ' ' . $row['name'] . '<br>';}
  7.  
  8. $db = NULL;
  9.  


Так вот, этот код вписывает в бд имя с кавычками 'name' и выводит так же с кавычками

Как выводить уже без кавычек?

(Отредактировано автором: 04 Мая, 2014 - 12:09:06)

 
 Top
Мелкий Супермодератор
Отправлено: 04 Мая, 2014 - 12:10:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




quote делать не нужно.


-----
PostgreSQL DBA
 
 Top
Ex
Отправлено: 04 Мая, 2014 - 12:13:19
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Мелкий пишет:
quote делать не нужно.

а как же "защита"? обработать данные что введет пользователь? это пишут везде, я по гуглу полазил Хм
 
 Top
Panoptik
Отправлено: 04 Мая, 2014 - 12:16:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




http://ua2.php.net/pdo.prepared-statements

вот примеры на которые вы должны ссылаться


-----
Just do it
 
 Top
Ex
Отправлено: 04 Мая, 2014 - 12:19:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Panoptik пишет:
http://ua2.php.net/pdo.prepared-statements

вот примеры на которые вы должны ссылаться


то есть обрабатывать ненужно что введет пользователь?
а как же защита? или иньекции в этих случаях исключены? просто зачем тогда в учебниках в гугле сток пишут об quote
 
 Top
Мелкий Супермодератор
Отправлено: 04 Мая, 2014 - 12:20:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ex пишет:
а как же "защита"? обработать данные что введет пользователь?

А эти занимается механизм prepared statements.
Дважды делать mysql_real_escape_string ведь не надо было, одно раза было достаточно?


-----
PostgreSQL DBA
 
 Top
Ex
Отправлено: 04 Мая, 2014 - 12:23:19
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Мелкий пишет:
Ex пишет:
а как же "защита"? обработать данные что введет пользователь?

А эти занимается механизм prepared statements.
Дважды делать mysql_real_escape_string ведь не надо было, одно раза было достаточно?
ага спасиб, просто совсем еще неопытный, еще толком не разбираюсь Улыбка 2 день пытаюсь понять Недовольство, огорчение
 
 Top
Ex
Отправлено: 04 Мая, 2014 - 19:41:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




еще 1 вопрос Улыбка
вот 2 способа видел, например для вывода инфы из бд:

PHP:
скопировать код в буфер обмена
  1. include ('connect.php');
  2.  
  3. $sql = 'SELECT * FROM people';
  4. $result = $db->prepare($sql);
  5. $result->execute();
  6.  
  7. foreach($result as $row) {echo $row['id'] . ' ' . $row['name'] . '<br>';}
  8.  
  9. $db = NULL;


PHP:
скопировать код в буфер обмена
  1. include ('connect.php');
  2.  
  3. $sql = 'SELECT * FROM people';
  4. $result = $db->query($sql);
  5.  
  6. foreach($result as $row) {echo $row['id'] . ' ' . $row['name'] . '<br>';}
  7.  
  8. $db = NULL;


т.е. в 1: подготавливаем и потом выполняем.
во 2: сразу выводим я так понял.

Оба метода работают. Но я хотел спросить, какой лучше? Безопаснее?

(Отредактировано автором: 04 Мая, 2014 - 19:48:13)

 
 Top
3d_killer
Отправлено: 04 Мая, 2014 - 20:14:38
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




у тебя нет тут переменных так что запрос можно не подготавливать
 
My status
 Top
Ex
Отправлено: 04 Мая, 2014 - 20:20:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




3d_killer пишет:
у тебя нет тут переменных так что запрос можно не подготавливать

не ну я для примера сделал, естественно у меня будут переменные.
 
 Top
3d_killer
Отправлено: 04 Мая, 2014 - 20:55:22
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




тогда с prepare
 
My status
 Top
Ex
Отправлено: 10 Мая, 2014 - 19:25:25
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




вот, что то начал делать, и вопрос: правильно ли? согласно логики и безопасности? подскажите, что не так, и что нужно сделать, что я упустил... Буду очень благодарен Закатив глазки
Спойлер (Отобразить)

(Отредактировано автором: 10 Мая, 2014 - 19:29:59)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB