Помогите с заменой данных в бд уже неделю мучаюсь. Существует 2 страницы reg.php и save_bd.php: Со страницы reg.php отправляет данные методом post в save_bd.php, так же отправляет методом $myrow['id'], номер id. Нужно чтобы у данного id изменилось значение tos в таблице, пробовал так не получилось: include ("bd.php"); $result = mysql_query("UPDATE tablo SET tos='$_Post' WHERE id=$_GET['id']",$db); Подскажите пожалуйста как правильнее???
) Добавлено спустя 1 минуту 5 секунд: сравни с элементы массивов кстати не вызываются внутри двойных кавычек
Как я понял так: $result = mysql_query('UPDATE tablo SET tos='$_Post' WHERE id=$_GET['id']',$db); только как сравнить???подскажи
нет, в одинарных кавычках переменные не работают вообще. Используй конкатенацию. Данные из POST надо использовать таким же образом.
Че та все равно не получается... Добавлено спустя 2 минуты 36 секунд: Пробовал еще так: include ("bd.php"); if (isset($_POST['tos'])) { $tos = $_POST['tos'];} $result = mysql_query 'UPDATE tablo SET tos='$tos' WHERE id=$_GET['id'],$db'; $myrow = mysql_fetch_array($result);
В данном случае человеку легче написать запрос, а не мучать теорией =) Код (Text): "UPDATE tablo SET `tos`='".html_special_chars($_POST['tos'])."' WHERE `id`='".(int)$_GET['id']."'"
как вы думаете, что вернет (int)$_GET['id']? Число или строку? Вы уверены, что стоит тут еще "заслешивать" параметр?
Ноль. Оно вернет ноль. С вероятностью 99% нулевой id будет существовать. Таким образом любое текстовое значение сразу ставит "под удар" нулевой айдишник. Это не инъекция, но дата-коррапшен на лицо Так что лучше не приводить, а слэшить. И не html_special_characters ом определенно.
не будет. автоинкремент идет с единички. и ничего страшного нет в том, что нулевой айдишник будет заапдейчен. Тот кто может запустить этот апдейт может запустить и любой. Т.е. косяк не в (int).
уже сто раз обсуждалось. надоело до чертиков =) есть специальная функция, нужно пользовать ее, предварительно установив кодировку.
Оффтоп: Кстати, использование WHERE%%BLYAD' спецификации передачи параметров гаранитрует полную защиту от любого вида инъекций.