Как вставить переменные php в SQL запрос
Гость
If ($_POST[‘op’]!=»choose») $link2=mysql_connect(«localhost», «root», «»);// устанавливаем связь с сервером
mysql_select_db(«work»);// переключаемся на нужную нам базу данных
$dat = date(‘Y-m-d’);
$tim = date(‘H: i’);
$result2=mysql_query(INSERT INTO op VALUES (».$_GET[id].’,’.$dat.’,’.$tim.’,’.$_POST[op].’'. ;
>
Что не так? Пишет Parse error: syntax error, unexpected T_STRING…
Гость
лучший ответ Вот так работает
$title = $_POST[‘title’];
$url=TitleToURL($_POST[‘title’]);
$description = $_POST[‘description’];
$keywords = $_POST[‘keywords’];
$content = $_POST[‘content’];
$query ;
$res = mysql_query($query);
Так правильно ты не описал поля куда ты будешь данные вставлять
Имхо лучше так к базе подключаться и использовать конструкцию как у меня
$dbh = mysql_connect($database_host, $database_user, $database_pass) // подключение
or die(«Error: can’t connect to MySQL! Check your settings. «);
mysql_select_db($database_name) // выбор бд
or die(«Error: there isn’t a database with such name! Check your settings. «);
Beast Winterwolf
Я далёк от РНР, но точно знаю что функция mysql_query() принимает строку. INSERT INTO блаблабла… — это не строка, нужно брать в кавычки.
- Вложенный запрос SELECT в INSERT. Или переменные. SQL
- Как выбрать значения из SQL таблицы и внести их в переменные в php?
- Как вставить в строку таблицы MySQL (через SQL запрос phpMyadmin) 6000 логинов и паролей?
- Как правильно вписать в запрос к MySQL базе в качестве значений переменные? Помогите с синтаксисом
- SQL переменные
Новые вопросы
- Как упорядочивать номера записей в базе данных mysql?
- Код на PHP + mySQL механизм взаимодействия
- MySQL Error Not connection задолбала
- КАК СОЗДАТЬ СТОЛБЕЦ В MYSQL SAMP
- PHP MySQL выдернуть записи и тут же их удалить вернув результат
Как в sql запрос вставить переменную php
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Цитата:
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12
Как в sql запрос вставить переменную php
Для того чтобы передать переменную в SQL запрос в PHP, можно использовать один из следующих вариантов:
- Использовать подготовленные запросы. Это позволяет избежать SQL инъекций и передавать переменные в запрос безопасным способом. Пример:
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email'); $stmt->execute(['email' => $email]); $user = $stmt->fetch();
- Сформировать строку запроса с помощью конкатенации строк и передать ее в функцию выполнения запроса. Пример:
$sql = "SELECT * FROM users WHERE email = '" . $email . "'"; $result = mysqli_query($conn, $sql); $user = mysqli_fetch_assoc($result);
Важно учитывать, что при использовании второго варианта возможна SQL инъекция, поэтому необходимо очищать переменные перед использованием их в запросе.
Для более детального изучения вопроса «SQL инъекции» рекомендуем просмотреть урок Безопасность при работе с внешними данными из курса PHP PDO: Работа с базой данных
Как в запрос к MySQL поставить переменную
«SELECT name, surname FROM datacenter WHERE surname = ‘$surname'» А как вместо name и surname вставить переменную?
21 ноя 2012 в 23:40
«SELECT name, «.$varible.»FROM datacenter WHERE surname = «.$var.»»
22 ноя 2012 в 10:14
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
$surname = "Бухарова"; $result = mysql_query("SELECT name, surname, class_str, class_int FROM datacenter WHERE surname = '$surname'");
Отслеживать
ответ дан 19 ноя 2011 в 13:55
734 1 1 золотой знак 7 7 серебряных знаков 28 28 бронзовых знаков
Для ухода от возможных проблем с кавычками, если значение из локального окружения, и для избежания SQL-инъекций, если значение берется из GET или POST, есть смысл поставить экранирование mysql_real_escape_string()
19 ноя 2011 в 15:00
‘SELECT name, surname, class_str, class_int FROM datacenter WHERE surname = «‘. mysql_real_escape_string($surname) .'»‘;
19 ноя 2011 в 15:07
или в ‘$foo’ или без них, без разницы
$result = mysql_query(«SELECT name, surname, class_str, class_int FROM datacenter WHERE surname = $foo»);
Отслеживать
ответ дан 19 ноя 2011 в 15:05
1,824 2 2 золотых знака 20 20 серебряных знаков 47 47 бронзовых знаков
Как это без разницы?
19 ноя 2011 в 15:07
Сколько раз писал, никогда проблем не возникало.
19 ноя 2011 в 15:09
Быть такого не может! Строка всегда должна быть в кавычках. Учите матчасть.
19 ноя 2011 в 15:13
Не могло оно у вас работать. Повторюсь, строка всегда должна быть в кавычках. Без кавычек SQL-парсер будет пытаться проанализировать ее как набор SQL-операторов или названий таблиц, колонок и т.д.
19 ноя 2011 в 15:16
mysql_query() — не асинхронная функция. И передача строки с запросом, и его разбор сервером, и компиляция, и выборка и подготовка результата — все в одном флаконе функции mysql_query() . Поэтому ошибку SQL-синтаксиса он вернет не выходя из нее.
11 июл 2012 в 21:17
На счет подстановки переменных, СРАЗУ делайте правильно, а правильно значит переменную перед постановкой нужно хорошенько отфильтровать (это относится, если вы переменный подставляете из всяческих ПОСТ и ГЕТ запросов) я лично пользуюсь php placeholder пример
$query = sql_placeholder('select * from users where email=? and password=? limit 1', $_POST['email'], $_POST['pass']);
Отслеживать
ответ дан 8 апр 2012 в 7:38
224 6 6 серебряных знаков 22 22 бронзовых знака
- php
- mysql
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
