[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PDO SQlite
monstantin
Привет, столкнулся с такой проблемой

От клиента поступают данные, например $_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 выдает ошибку?





Kusss
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"] ]);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.