Задать вопрос

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

Здравствуйте. Подскажите, правильно ли оформлен INSERT-запрос:

$connect->query("INSERT INTO vhosts (mainname,login,email,index,charset) VALUES ({$mainname} , {$login} , {$email}, {$index} , {$charset})");
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
knetesin
@knetesin
Шпион
VALUES ({$mainname} , {$login} , {$email}, {$index} , {$charset}

дословно засылая строки т.е - VALUES (string , string , string, string , string)
вы получаете ошибку т.к строки надо обрамлять в кавычки т.е хотя бы так:
$connect->query("INSERT INTO vhosts (mainname,login,email,index,charset) VALUES ('{$mainname}', '{$login}', '{$email}', '{$index}' , '{$charset}')");

(допустим index - строка, в коде у вас наверняка нет явной типизации, если вдруг есть то можно {$index} не обрамлять)

не говоря уже о потенциальных sql инъекциях :)
Ответ написан
Комментировать
@krypt3r
Что за двоечники тут отвечают?
Для ТС. Вам нужно изучить PDO и prepared statements. Тогда у вас в коде будет нечто такое:
$pdo->prepare("INSERT INTO vhosts (mainname,login,email,index,charset) VALUES (:mainname , :login , :email, :index , :charset)");
$pdo->execute([':mainname' => $mainname , ':login' => $login , ':email' => $email, ':index' => $index , ':charset' => $charset]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽