- Вставить переменную PHP в запрос INSERT INTO MySQL
- Оу..
- Здесь я вставляю две переменные с текущей датой
- Как вставить переменные в sql запрос на php?
- Как в sql запрос вставить переменную php
- Вывод данных из MySql на PHP
- Извлечь данные из таблицы MySql
- mysqli_connect
- mysqli_query
- mysqli_fetch_array
- Вывод переменной врутри строки
Вставить переменную PHP в запрос INSERT INTO MySQL
Я пытаюсь вставить переменную PHP в запрос “INSERT INTO” MySQL. Я попробовал много комбинаций без везения.
$sql = 'INSERT INTO 'mse_names' ('id', 'name', 'day') VALUES (NULL, ".$testing_for.", \'test_day\');'; mysql_query($sql);
Я могу подтвердить, что $ testing_for содержит строку – я проверил это, вызывая var_dump прямо перед этим.
Любая помощь очень ценится, спасибо заранее
* edit: извините, забыли упомянуть, что эти входы. $ testing_for. и проверить в столбцах уважения, когда я смотрю в таблицу, используя phpmyadmin *
Оу..
$sql = 'INSERT INTO 'mse_names' ('id', 'name', 'day') VALUES (NULL, "'.$testing_for.'", "test_day");';
Это было уловлено редактором SO markdown ^ _ ^
Вы должны использовать двойные кавычки, если вы хотите напрямую вставлять переменные в строки:
$sql = "INSERT INTO 'mse_names' ('id', 'name', 'day') VALUES (NULL, '$testing_for', '$test_da');";
Или просто используйте . оператор:
$sql = 'INSERT INTO 'mse_names' ('id', 'name', 'day') VALUES (NULL, "'.$testing_for.'", "'.$test_da.'");';
Здесь я вставляю две переменные с текущей датой
$ var1 = “1”;
$ var2 = “phpmyadmin”;
$sql = 'INSERT INTO Table_name ('id', 'name', 'datetime') VALUES ("'.$var1.'", "'.$var2.'", now());';
now() → теперь функция вставляет текущую дату и время
Ваш $ sql находится в пределах одного апострофа, поэтому использование цитаты, чтобы оставить строку, не работает. Либо изменение
".$testing_for." to '.$testing_for.'
Почему конкатенация строк?
Вы можете сделать это прямо:
$sql = "INSERT INTO 'mse_names' ('id', 'name', 'day') VALUES (NULL, '$testing_for', 'test_da');";
Но если вы хотите, вы можете сделать также:
$sql = "INSERT INTO 'mse_names' ('id', 'name', 'day') VALUES (NULL, '".$testing_for."', 'test_da');";
$sql = "INSERT INTO mse_names (id, name, day) VALUES (null, '" . $testing_for . "', 'test_day')"; mysql_query($sql)
$sql = 'INSERT INTO 'mse_names' ('id', 'name', 'day') VALUES (NULL, "'.$name.'", "day");';
Он просто так работает. Проверено I’v
$ insertDetais = mysql_query (“INSERT INTO Лица (имя_пользователя, poNumber, mobileNumber, emailAdd, оценка, информационный бюллетень, guessFinal) VALUES (‘$ userName’, ‘$ poNumber’, ‘$ mobileNumber’, ‘$ emailAdd’, ‘$ оценка’, ‘$ newsletter’, ‘$ guessFinal’) “, $ conMySQL);
Как вставить переменные в sql запрос на php?
Вопрос:
Как правильно оформить вставку переменных в этот запрос?
Оценить 1 комментарий
А точки-то зачем? для прайса можно взять between, если это числа. Попробуйте написать сначала запрос или в консоли, или в чем-то типа phpmyadmin, если он есть.
Только. Через. Плесхолдеры.
Любой, кто отвечает иначе — тупой нуб, застрявший в прошлом веке и так и не осиливший даже азы программирования.
Соответственно, тебе нужна библиотека, которая поддерживает плейсхолдеры. Хотя старушку 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, можно использовать один из следующих вариантов:
- Использовать подготовленные запросы. Это позволяет избежать 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 на PHP
Первое, что нам следует сделать для того, чтобы получить данные из таблицы базы данных, — установить соединение с БД.
Извлечь данные из таблицы MySql
После того, как мы установили соединение с БД, c помощью запроса можно получить данные из любой таблицы. А с помощью цикла while их вывести.
Теперь давайте разберем функции, которые мы использовали для вывода данных из MySql.
mysqli_connect
mysqli_connect(, , , ) — устанавливает соединение с базой данных.
mysqli_query
mysqli_query(, ) — выполняет запрос к БД, написанный на языке SQL.
mysqli_fetch_array
mysqli_fetch_array() — поочередно возвращает по одной строке из результата запроса.
Вывод переменной врутри строки
Заметьте, что если вы выводите строку оператором echo и строка заключена в двойные кавычки (именно двойные), то внутрь строки можно вставлять переменные в фигурных скобках и они будут подставленны в этот шаблон. Круто, да?
Понравилась или помогла статья? Самое лучшее, что ты можешь сделать — это поделиться ею в любой из своих соцсетей (даже если ты поделишься в твиттере или google+, которыми ты не пользуешься — это очень поможет развитию моего блога). Спасибо! А если ты еще и оставишь любой комментарий снизу в обсуждениях, то это будет двойное СПАСИБО!
Ссылка на статью на всякий случай:
Крутов Герман © 2009-2023 krutovgerman2007@ya.ru Я ВКонтате