так работает:
$userReg = "INSERT INTO
user(
mail) VALUES ('test')";
а так нет:
$userReg = "INSERT INTO
user(
mail) VALUES ('$_POST['label']')";
Может так
$userReg = "INSERT INTO user(mail) VALUES ('{$_POST['label']}')";
и этот код открыт для SQL инъекций. Лучше всего использовать подготовленные запросы. Сейчас, если в $_POST['label']
будет строка с одинарной кавычкой, то sql запрос будет невалидным.
Никаких POST'ов в запросе! Даже в 90-е годы это было адским злом, а уж в 2017-ом тем более.
Если всё же сильно хочется воткнуть POST прямо в строку запроса, то значение надо экранировать, иначе получится уязвимость SQL-inj:
$userReg = "INSERT INTO user SET mail = '".addslashes($_POST['label'])."'";
Если к базе уже есть коннект, то корректнее экранировать так:
$userReg = "INSERT INTO user SET mail = '".mysql_real_escape_string($_POST['label'])."'";
Оба варианта - плохие. Лучше не рассматривать их вообще и сразу шагнуть в 21й век в объятия PDO:
$dbh = new PDO($dsn, $user, $password);
$sth = $dbh->prepare('INSERT INTO user SET mail = :mail');
$sth->execute([':mail' => $_POST['label']]);
И всё! Вы в безопасности!
Пример подключения к базе, подготовка и выполнение запроса.
Есть интересная особенность, вы не можете вставить в значение string ячейку массива без использования операторов. PHP сконвертирует только "чистую" переменную ($variable). $array['key'] не будет принято интерпретатором. Вообще, в любом случае подобная реализация некорректна из-за 2 причин. Как сказали выше это небезопасно. И второй момент, читаемость хромает в таком случае. Лучше все оформлять одним стилем, а именно
$var = "text " . $var2 . " text";
if (!empty($_POST)) {
$lable1 = isset($_POST['label']) ? strip_tags(trim($_POST['label'])) : '';
$lable1=(string)$lable1;
} Уточнить что только сторока будет в этой переменной.`
далее минимально подготавливаем запрос.
$host='localhost';
$user='ivan';
$password='сам придумай';
$database='твоя база';
$port='80';
$link=mysqli_connect($host,$user,$password,$database,$port);
$userReg=mysqli_real_escape_string($link, $userReg);
$query="INSERT INTO user (mail) VALUE (".$test.")";
$result=mysqli_query($link,$query);
mysqli_close($link);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую стандартный GridView::widgetПодскажите как в ActionColumn отобразить по условию в одной строке только просмотр ({view}), а в другой просмотр и удаление...
Проект saas-сервис типа мегапланаВ голове есть приблизительная структура классов, например: работа с БД, работа с задачами, сервисный класс...
Имеется файл xml, в котором присутствуют примерно такие участки кода: