Страницы

Поиск по вопросам

среда, 19 декабря 2018 г.

Переменная PHP внутри запроса MySQLi [дубликат]

На данный вопрос уже ответили: Как вставить значение переменной внутрь строки? 4 ответа Проблема заключается в выводе переменной $set_name внутри MySQLi запроса не в том виде, как того хотелось бы.
$set_name в данном примере равно 'name = "John"', но в MySQL запросе, вероятно, выводится в другом виде и запрос, соответственно, не выполняется. Если же переменную $set_name заменить на её значение (name = "John"), то запрос выполняется...
$name = 'John'; if(empty($name)) { $set_name = ''; } else { $set_name = ' name = "'.$name.'"'; } $update = $mysqli->query('UPDATE table SET $set_name WHERE id = 1');


Ответ

вам нужно использовать двойные кавычки, вот так:
$update = $mysqli->query("UPDATE table SET $set_name WHERE id = 1");
но так делать плохо, посмотрите например в сторону PDO
prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12); $sth->execute(); ?>

Комментариев нет:

Отправить комментарий