@green300

Можно как то в PDO сделать чтоб не обязательно все поля формы отправлялись?

Вот такой запрос из формы - у меня обязательным является только тайтл по задумке, но этот запрос требует чтоб и боди и путь к файлу был отправлен....или мне через условие на каждое поле прописывать отдельно логику?
$sql = 'INSERT INTO post(user_id, title, body, img, category_id) VALUES (:user_id, :title, :body, :img, :category_id)';
$res = $pdo->prepare($sql);
$post = $res->execute(['user_id'=>$_SESSION['user']['id'], 'title'=>$title, 'body'=>$body, 'img'=>$path, 'category_id'=>$cat_id ]);

или у меня чет он переменные не воспринимает
сдается мне что то не верно здесь -
$title = htmlspecialchars(trim($_POST['title']));
	$body = htmlspecialchars(trim($_POST['body']));
	$userfile = $_FILES['userfile'];
	$category = $_POST['category'];

если в запрос подставлять саму переменную массива $_POST['body'], а не $body, тогда значение не нуль.
в чем подвох кто подскажет? спасибо заранее.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
$title = $actualTitle ?: '';
$path = $someRealpath ?: '/img/default_placeholder.png';

Вот и вся отдельная логика.

Вообще, в фреймворках для форм есть фильтры и валидаторы, и значения по умолчанию.Можете посмотреть как это делается в symfony или laravel. Там конечно гораздо больше писанины чем вот так вот два раза по полстрочки. Но если разберетесь как оно работает получите кучу плюшек - и удобство для пользователя, и гораздо сложнее будет пропустить мусор из формы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы