Задать вопрос
@viktorross

Как загрузить файл и записать его имя в бд?

здравствуйте, подскажите пожалуйста, я пытаюсь из шаблона передать и записать значения input, но мне нужно дополнительно загрузить фото и подставить id, подскажите как загрузить фото и добавить его в бд? и не пойму почему вместо $id в user_id ничего не записывает, либо 0

function add_ban() {

$id_us=users::userIdget($id);


		global $db;
		$this->clean=array();
		$this->clean['title'] = escape($_POST['title']);
		$this->clean['location'] = escape($_POST['location']);
		$this->clean['max_clicks'] = escape($_POST['max_clicks']);
		$this->clean['max_impressions'] = escape($_POST['max_impressions']);
		$this->clean['link'] = escape($_POST['link']);

	$path = 'images/baners/';

		if (!@copy($_FILES['image']['tmp_name'], $path . $_FILES['image']['name']))

		$this->clean['position'] = escape($_POST['position']);
		$db->query('insert into `class_banners` set `title` = "'.$this->clean['title'].'",

		`location` = "'.$this->clean['location'].'", `max_clicks` = "'.$this->clean['max_clicks'].'",

		 `max_impressions` = "'.$this->clean['max_impressions'].'", `link` = "'.$this->clean['link'].'",

		 `position` = "'.$this->clean['position'].'", `user_id` = "'.$id_us.'",  `position` = "'.$this->clean['position'].'", `filename` = "'.$this->clean['image'].'";');
		return 1;

	}


саму фотку добавляю обычно в форме

<input type="file" style="width: 350px;" name="image" id="image" />
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
wagoodoogoo
@wagoodoogoo
Laravel, javascript, phalcon, vue, slim, craft cms
$id_us=users::userIdget($id);
А откуда внутри функции add_ban $id берётся? Его нет
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) $id видимо определен выше вызова функции, но как уже вам указали - область видимости внутри функции - локальная, все что не определено внутри тела функции для нее не существует, исключение - глобальные переменные.
2) Научитесь пользоваться дебаггером, например xdebug, или хотя бы используйте var_dump().
3) sql запросы СНАЧАЛА формируете в виде строки, затем передаете в вызов, тогда можно будет их вывести и посмотреть что с ними не так, подозреваю что в варианте который вы "поправили" проблема в отсутствии поля user_id которое скорее всего обязательное. Можно проверить напрямую введя этот запрос в консоль мускуля или через phpmyadmin.
4) Код кошмарный, во-первых зачем-то засунут в функцию, хотя этот код вряд ли будет использоваться дважды, во-вторых функция использует внутри себя глобальные переменные, что плохо. Почитайте про чистые функции. Про метод "проверки" переменных вообще нет слов, сплошь междометия...
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽