Php переменные в запросе select

Как из php передать в sql переменную, как название новой таблицы?

Как передать переменную с php в процедуру mysql
Создаю процедуру CREATE DEFINER = `root`@`localhost` PROCEDURE `rep` ( IN `p_id` INT ) NOT.

Как передать значение переменной JS в переменную PHP?
Как передать значение переменной JS в переменную PHP? Можно и в сессионную переменную.

Как вместо названия таблицы в sQL-запросе можно подставить переменную, данное название содержащую?
Проблема такая. Каким образом вместо названия таблицы в sQL-запросе можно подставить переменную.

mysql_query($query) or die(mysql_error());
. $query = "INSERT INTO $postable VALUES('$real_name','$url_name','. 

Добавлено через 13 минут
MySQL server version for the right syntax to use near ‘346767’ at line 1 . спасибо
он к переменной добавляет ‘ ‘

Лучший ответ

Сообщение было отмечено Vic-Tor как решение

Решение

$query = "CREATE TABLE `".$url_name."` (id int(2) primary key auto_increment, name varchar(100),tel varchar(20))"; mysql_query($query); // создаем таблицу "student" в виде (id,name,tel) $query = "INSERT INTO `".$postable."` VALUES('".$real_name."','".$url_name."','".$img_group."')";

Источник

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

Вопрос:
Как правильно оформить вставку переменных в этот запрос?

Оценить 1 комментарий

А точки-то зачем? для прайса можно взять between, если это числа. Попробуйте написать сначала запрос или в консоли, или в чем-то типа phpmyadmin, если он есть.

FanatPHP

Только. Через. Плесхолдеры.
Любой, кто отвечает иначе — тупой нуб, застрявший в прошлом веке и так и не осиливший даже азы программирования.

Соответственно, тебе нужна библиотека, которая поддерживает плейсхолдеры. Хотя старушку mysql ext можно заставить, но для новичка лучше всего подойдет PDO.

$sql = "SELECT * FROM mytable WHERE city = ? AND price BETWEEN ? AND ? AND type = 'Продать'"; $stmt = $pdo->prepare($sql); $stmt->execute([$_POST['city'], $_POST['area'], $_POST['price']-50, $_POST['price']+50]); $data = $stmt->fetchAll();

Как соединяться с БД и вообще про PDO читай здесь: phpfaq.ru/pdo

А твоя ошибка вызвана опечаткой и неправильной обработкой ошибок.
Во-первых, у тебя в какой-то из запросов передается пустая строка — скорее всего, из-за опечатки
Во-вторых, если бы в РНР было включено нормальное отображение ошибок, то РНР тебе бы сам ругнулся на эту опечатку.
В-третьих, если бы ошибки mysql обрабатывались по-человечески, то РНР тоже указал бы на тот конкретный запрос, который оказался пустым. И ты бы не хватался вместо него за первый попавшийся.

Источник

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

Для того чтобы передать переменную в SQL запрос в PHP, можно использовать один из следующих вариантов:

  1. Использовать подготовленные запросы. Это позволяет избежать SQL инъекций и передавать переменные в запрос безопасным способом. Пример:
 $stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email'); $stmt->execute(['email' => $email]); $user = $stmt->fetch(); 
  1. Сформировать строку запроса с помощью конкатенации строк и передать ее в функцию выполнения запроса. Пример:
 $sql = "SELECT * FROM users WHERE email = '" . $email . "'"; $result = mysqli_query($conn, $sql); $user = mysqli_fetch_assoc($result); 

Важно учитывать, что при использовании второго варианта возможна SQL инъекция, поэтому необходимо очищать переменные перед использованием их в запросе.

Для более детального изучения вопроса «SQL инъекции» рекомендуем просмотреть урок Безопасность при работе с внешними данными из курса PHP PDO: Работа с базой данных

Источник

Как вставить переменную PHP в запрос SQL

Это получает имя и фамилию из таблицы, называемой пользователями, и объединяет их вместе, помещая пространство посередине и ставит в порядке возрастания. Затем я помещаю это в массив и прокручиваю его, чтобы использовать его в раскрывающемся списке выбора. Это работает, однако, то, что я сейчас хочу сделать, это сравнить полное имя с столбцом с именем username в другой таблице, называемой пользователем. Я изо всех сил пытаюсь написать запрос. Пока у меня есть.

Вы действительно должны ссылаться на использование PDO. При использовании PDO вы можете привязывать параметры к определенным частям вашего запроса. PDO также имеет встроенную защиту от SQL-инъекций, которая является большой мерой безопасности, с которой вам не придется иметь дело. Надеюсь, это ответит на ваш вопрос. См. Мой пример ниже. Пример:

// Create a new PDO object holding the connection details $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); // Create a SQL query $query = "SELECT username FROM users WHERE (forename + ' ' + surname) AS fullname = :visiting;"; // Prepare a PDO Statement with the query $sth = $pdo->prepare($query); // Create parameters to pass to the statement $params = [ ':visiting' => $_POST['Visiting'] ] // Execute the statement and pass the parameters $sth->execute($params); // Return all results $results = $sth->fetchAll(PDO::FETCH_ASSOC); 

Если у вас есть другие вопросы о PDO, обратитесь к следующему:
Официальная документация PDO:
http://php.net/manual/en/book.pdo.php Документация о том, как связывать переменные:
http://php.net/manual/en/pdostatement.bindparam.php

$qry2 "SELECT username FROM users WHERE (forename + ' ' + surname) = '" . $_POST['Visiting'] . "'"; 

Но для лучшей безопасности (SQL-инъекция) вы должны использовать экранирование переменной. Например, эта конструкция, если вы используете базу данных MySQL:

$qry2 "SELECT username FROM users WHERE (forename + ' ' + surname) = '" . mysql_real_escape_string($_POST['Visiting']) . "'"; 

да, это только пример. Защита инъекций sql важна. Функции / классы зависят от используемого движка sql (mysql, postgresql, . ).

Это может сработать, если вы используете PDO:

$qry2 = "SELECT username FROM users WHERE CONCAT(forename, ' ', surname) = '" . $conn->quote($_POST['Visiting']) . "'"; 

. но вы должны посмотреть на возможные уязвимости с помощью SQL-инъекций.

Не зная, какую библиотеку вы используете для подключения к базе данных MySQL, невозможно дать правильное представление о том, какой метод вы должны использовать для экранирования ввода пользователя. quote — метод PDO для экранирования, real-escape-string является эквивалентом для MySQLi

Это понизило меня из-за опасности SQL-инъекций. Он будет скопирован и использован, и драма продолжится.

Источник

Читайте также:  Php get post as string
Оцените статью