На данный вопрос уже ответили:
Как вставить значение переменной внутрь строки?
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();
?>
Комментариев нет:
Отправить комментарий