@Fiilya

Как записать ID пользователя из $_SESSION в таблицу БД?

Есть таблица, в которой хранятся данные пользователей и их id, после чего пользователь заходит на сайт под своим логином и паролем, затем добавляет запись. Все записи хранятся в другой таблице, нужно добавить во вторую таблицу в колонку users_id, id пользователя добавившего запись, что я делаю не так?
$task = strip_tags( $_POST['task'] );
$date = date('Y-m-d');
$time = date('H:i:s');
$users_id = $_SESSION['logged_user']->id;
R::exec("INSERT INTO tasks (task, date, time, users_id) VALUES ('$task', '$date', '$time', '$users_id')");

После попытки отправить получаю ошибку: (Fatal error: Uncaught [22007] - SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column `tasks`.`tasks`.`users_id` at row 1 trace: #0 ).
  • Вопрос задан
  • 319 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых похожий вопрос вы уже задавали и вам на него ответили,
во вторых перестаньте говнокодить и разберитесь уже один раз со структурами базы данных, типами данных и модификаторами.
Кроме того, как вам уже писали - используйте встроенные механизмы бобов, а не городите хрень в стиле 90х годов.

Проверьте типы данных которые у вас в полях и которые у вас в переменных.

Все еще не понимаю нахуа вам разделять дату и время.

UPD: если уж пользуетесь кривым подходом - то хоть с умом, проверьте что вы там выполняете...
$sql = "INSERT INTO tasks (`task`, `date`, `time`, `users_id`) VALUES ('$task', '$date', '$time', $users_id)";
var_dump($sql);
R::exec($sql);


PS: strip_tags нифига не защищает от скуэль инжекций, которые у вас там можно в полный рост...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы