@js_123

Почему не работает UPDATE php?

Вечер добрый
Начал изучать работу с sql посредством php и столкнулся с проблемой
Код ниже работает исправно (передаю значение через ajax)
$sql = "UPDATE main_test1 SET name = 1234 WHERE id = 2;";

А вот код ниже не работает
$test = $_POST["test"];
$sql = "UPDATE main_test1 SET name = $test  WHERE id = 2;";

В чём может быть проблема?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
IgorPI
@IgorPI
Коллега, ваш код относительно правильный и в некоторых случаях он будет работать, в некоторых нет.
Нельзя сказать что это не рабочий вариант.

Когда вы составляете такой запрос вы подвергаете себя риску.
Ответьте себе на вопрос, а что произойдёт, если в переменной $test будет строка?

Опасно!
$test = $_POST["test"];
$sql = "UPDATE main_test1 SET name = $test  WHERE id = 2;";


В вашем случае во так
$test = $_POST["test"];
$sql = "UPDATE `main_test1` SET `name` = '$test'  WHERE id = 2;";
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
проблема в неправильном запросе.
Переменную надо не прямо в запрос пихать, а передавать отдельно.
$sql = "UPDATE main_test1 SET name = ?  WHERE id = 2";
$stmt= $conn->prepare($sql);
$stmt->bind_param("s", $name);
$stmt->execute();
Ответ написан
Комментировать
@Kirill-Gorelov
С ума с IT
Напиши хотя бы
$sql = "UPDATE main_test1 SET name = ".$test." WHERE id = 2;";

или

$sql = "UPDATE main_test1 SET name = {$test} WHERE id = 2;";

А вообще используй pdo
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы