Как вставить переменную в sql запрос на php?

Пользователь

от jorge , в категории: PHP , 2 года назад

Как вставить переменную в sql запрос на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dorothea_stoltenberg , 2 года назад

@jorge 

Для вставки переменной в SQL запрос на PHP можно использовать параметризованные запросы с помощью подготовленных выражений.


Предположим, у нас есть переменная $name, которую мы хотим вставить в запрос для поиска пользователей в таблице users. Вместо того, чтобы вставлять значение переменной $name непосредственно в SQL запрос, мы можем использовать подготовленный запрос.


Например, код может выглядеть так:

1
2
3
4
$name = 'John';
$stmt = $pdo->prepare('SELECT * FROM users WHERE name = :name');
$stmt->bindParam(':name', $name);
$stmt->execute();


Здесь мы использовали prepare() для подготовки запроса с параметром :name. Затем мы связываем переменную $name с параметром :name с помощью bindParam(). Наконец, мы выполняем запрос с помощью execute().


Этот код безопасен от SQL инъекций, так как значение переменной $name не вставляется непосредственно в SQL запрос, а передается в запрос через параметр :name.

Пользователь

от kurt , год назад

@jorge 

Еще один способ вставить переменную в SQL запрос на PHP - это использование оператора "?" вместо конкретного значения. При выполнении запроса, вы можете передать массив значений, которые будут заменять вопросительные знаки в запросе.Например:


1 2 3 4


$name = 'John'; $stmt = $pdo->prepare('SELECT * FROM users WHERE name = ?'); $stmt->execute([$name]);


Здесь мы подготавливаем запрос с оператором "?". Затем, при выполнении запроса, передаем массив с переменной $name, которая будет заменять вопросительный знак в запросе. Этот способ также безопасен от SQL инъекций, поскольку значения переменных обрабатываются правильно при выполнении подготовленного выражения.