Как обновить столбец char в MySQL, передав переменную php?

В настоящее время я занимаюсь разработкой простого сайта php / mysql.

Мне нужно обновить столбец char в таблице, передав переменную php. Проблема в том, что я не знаю, как передать переменную в виде строки.

$verify = $_POST['verification'];

"UPDATE Users SET account_status=1 WHERE verification_code= . $verify . ";

Выше запрос не работает для меня. Выполнение запроса вручную на MySQL работает;

UPDATE Users SET account_status=1 WHERE verification_code="XYz12"

поэтому я думаю, что проблема заключается в передаче переменной в виде строки. Я попробовал пару разных вещей, но не смог справиться …

-2

Решение

"UPDATE Users SET account_status=1 WHERE verification_code='" . $verify . "'";

Но, конечно, это очень плохая форма. Вы должны убедиться, что ваша переменная правильно экранирована. Я рекомендую использовать подготовленные заявления PDO:

$stmt = $db->prepare("UPDATE Users SET account_status=1 WHERE verification_code=?");
$stmt->execute(array($verify));
1

Другие решения

поле valid_code является строкой, это должно быть между простой кавычкой, например:

$query = "UPDATE Users SET account_status=1 WHERE verification_code='$verify'";
2

Правильная строка для запроса выглядит следующим образом:

$query = "UPDATE Users SET account_status=1 WHERE verification_code=\"" . $verify . "\"";

С \ char вы выбираете кавычки. В любом случае это может быть довольно запутанным, поэтому вы можете использовать простые цитаты.

$query = "UPDATE Users SET account_status=1 WHERE verification_code='$verify'";

Обратите внимание, что вы можете сделать ссылку на переменную php в кавычках, как указано выше.

КСТАТИ. Ваша ошибка в том, что вы используете символы конкатенации внутри строки. Это следует использовать как мой первый пример. В любом случае вам нужно заключить в кавычки значение SQL, если это строка. Вам не нужно делать это, если поле НЕ является строкой.

Если вас беспокоит SQL-инъекция, вы можете использовать подготовленные операторы вместо простых запросов. Я рекомендую вам ЗОП Класс PHP. Вы можете попробовать MySQLi тоже.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector