Вопрос: Помогите с получением значения из БД в переменную PHP SQL | Onpioneer

Помогите с получением значения из БД в переменную PHP SQL

table — users имеет поля id, login, password, f_name и далее

Человек авторизовался на сайте, теперь надо подтянуть f_name в $f_name и id в $id. Помогите SQL-запрос написать.
Михаил
Вот пример через PDO, не проверял, но должно работать, если допишите под себя

$host = ‘localhost’;
$database = ‘dim565_testt’;
$user = ‘dim565_testt’;
$password = ‘T0sFGN4GKn’;
$db = new PDO(«mysql:host=$host;dbname=$database», $user, $password);

$result = $db->query(«SELECT id, login, password, f_name FROM users WHERE login = :login AND password = :password»); //пароль разумеется нужно сделать проверку хэша пароля
$result = $db->prepare($sql_select);
$result -> bindParam(‘:login ‘, $login, PDO::PARAM_STR); // login где-то ранее получали методом POST
$result -> bindParam(‘:password’, $password, PDO::PARAM_STR); // password где-то ранее получали методом POST
$result -> execute();
$row = $result->fetch(); // получаем значения из одной строки т. к по идее user выбирается один
$f_name = $row[‘f_name’];
$id = $row[‘id’];
dim5651
Всего 2 ответа.

Другие интересные вопросы и ответы

Что такое SQL-инъекция?

Гость5

Говоря кратко – это вид уязвимости в (обычно) веб-приложениях или API, позволяющий выполнить произвольный запрос в базе данных. Обычно вызван неаккуратным экранированием пользовательских данных или вообще его отсутствием.

Классический комикс на эту тему – https://xkcd.com/327/

Сергей Чистович5
SQL — это язык для управления базами данных.Типичные запросы в нем выглядят так:SELECT * FROM users WHERE name = ‘Yandex’;Этот запрос возвращает всех юзеров из таблицы users с именем ‘Yandex’.Часто запрос формируется в коде таким образом (пример на языке Python):return «SELECT * FROM users WHERE name = ‘%s’;» % nameТо есть запрос формируется как строка, куда в кавычки вместо %s вставляется значение строки name.Формировать таким способом SQL-запросы — опасно, так как возможны SQL-инъекции — это таким образом подобранные значения переменных, что при таком явном подставлении в запрос запрос значительно модифицируется и делает что-то другое.Например, кто-то в Польше создал компанию с названием «Dariusz Jakubowski x’; DROP TABLE users; SELECT ‘1» (https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/SearchDetails.aspx?Id=e82735cd-bc2b-4ac0-8bac-a1dc54d8c013)Предположим, эта компания заполнила форму этим именем, и питоновский код сформировал такой SQL-запрос:SELECT * FROM users WHERE name = ‘Dariusz Jakubowski x’; DROP TABLE users; SELECT ‘1’;Теперь вместо старой логики «найди мне юзеров с данным именем» этот код находит юзеров с именем ‘Dariusz Jakubowski x’, если есть, а после этого удаляет таблицу users (!!!) и возвращает ‘1’.С помощью SQL-инъекций злоумышленники могут менять запросы и тем самым менять логику работы с базой данных, в том числе удалить какие-то данные.Для того, чтобы бороться с ними, применяют, например, экранирование (грубо говоря, запрещают использовать те же кавычки в названии, что и в запросе)Андрей Гаркавый11
Всего 2 ответа.[my_custom_ad_shortcode1]

Путь программиста T-SQL. Самоучитель по языку Transact-SQL

Гость1
Путь программиста T-SQL. Самоучитель по языку Transact-SQLhttps://info-comp.ru/t-sql-book.html
В книге подробно, с большим количеством примеров, рассмотрены основы программирования на языке T-SQL. Вы узнаете, как писать SQL запросы (как на выборку, так и на модификацию данных), как разрабатывать хранимые процедуры, функции, триггеры, устанавливать ограничения, создавать индексы, а также научитесь использовать аналитические и другие продвинутые конструкции T-SQL для реализации сложных отчетов в Microsoft SQL Server. В книге приведено описание системных типов данных, показана работа с XML данными, с транзакциями, с курсорами и многими другими возможностями языка T-SQL. Пошаговая установка Microsoft SQL Server и Management Studio поможет Вам быстро приступить к практическому применению полученных знаний.
#Transact #SQL #MicrosoftSQL #Путьпрограммиста
Обзор сайтов67
Всего 1 ответ.

Php. Как исправить, если вместо переменной echo выводит Array?

session_start();

$query3 = mysql_query(«SELECT admin FROM users WHERE Login=’$Login’ AND Pass=’$Pass'»);

$admin = mysql_fetch_array($query3);

$_SESSION[‘admin’] = $admin;

На другой странице —

echo($_SESSION[‘admin’]);

Вместо значения, которое записанно в базе данных, выводит слово Array.

Xenon4041

Чтобы вывести все элементы массива, воспользуйтесь циклом foreach, он предназначен для работы с массивами, к тому же очень удобен. Коротко описывать не буду, лучше посмотрите описание работы с массивами и циклом foreach с примерами вот здесь

MaiAs­im1
Всего 2 ответа.

MySQL — как мне достать из БД из столбца определенное количество символов, но без тегов?

Я хочу достать, например, 300 символов. Это превью статьи. Чтобы прочитать всю статью, нужно перейти на страницу с ней (открыть ее). Проблема в том, что в БД могут в тексте использоваться теги. В php я их убираю (strip_tags). Но получается уже меньше 300 символов. Как я понял, нужно убирать их при выборке данных. Как мне это сделать? Помогите написать запрос.Guest2

В SQL запросе можно прямо использовать функцию Substring.
Например так.

SELECT xxxx, SUBSTRING(text,1,300)
FROM tabke

Гость4
Всего 1 ответ.
Вам также может понравиться
Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *