Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> PDO SQlite, Не могу понять
monstantin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43177
На форуме: 4 месяца, 24 дня
Карма:




Привет, столкнулся с такой проблемой

От клиента поступают данные, например $_POST["name"]

Мне нужно добавить в БД, то что пришло от пользователя

	$db = new PDO("sqlite:database.db");

$name = $db->quote($_POST["name"]);

$sql = "INSERT INTO user(name) VALUES ($name)";

$res = $db->exec($sql);


Все в порядке запрос проходит, но у меня вопрос, почему если $_POST["name"] не прогнать через функцию quote, то автоматически exec выдает ошибку?







Это сообщение отредактировал monstantin - 21.09.2016 - 15:23
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1357
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 12 дней
Карма: 77




http://php.net/manual/ru/pdo.quote.php
quote - экранирует данные для запроса. Можно и без него, но это не безопасно.
без него
$sql = "INSERT INTO user(name) VALUES ('".$_POST["name"]."')";

Но лучше так не делать.

Ещё можно добавлять через подготовленный запрос. Я сначало запостил, что ниже. Но в данном примере это лишнее.
$sql = "INSERT INTO `user` (name)  VALUES (:name)";
$add = $db->prepare($sql);

$add->execute([
'name' => $_POST["name"]
]);
или
$sql = "INSERT INTO `user` (name)  VALUES (?)";
$add = $db->prepare($sql);

$add->execute([ $_POST["name"] ]);


Это сообщение отредактировал Kusss - 21.09.2016 - 16:12
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса