У меня есть форма редактирования. Я собираю данные для строки, как это –
if (isset($_GET["id"])) { $pur_id = intval($_GET["id"]); } else { echo "id not set"; }
Затем я пытаюсь выполнить следующий запрос UPDATE.
$qry1 = mysqli_query($con,"UPDATE `purchase_info` SET `remarks` ='$remarks' WHERE `pur_info_id` = '$pur_id'");
Этот запрос работает, но он не обновляет записи в моей базе данных. Но он обновляет запись, когда я просто передаю числовое значение вместо переменной, в которую я помещаю свой идентификатор строки. Поэтому, если я 'pur_info_id' = 1
то он обновит мою запись.
Это очень странно. Я конвертирую значение, используя значение int, но все равно не повезло. Пожалуйста посоветуй. Благодаря!!
Ваш запрос нечувствителен, потому что когда он фактически выполняет UPDATE
он заменяет столбец pur_info_id
значением, которое у него уже было. Предположим, что $pur_id
имеет значение 1
, тогда ваш запрос может быть записан как:
UPDATE `purchase_info` SET `pur_info_id` = 1, `remarks` = '$remarks' WHERE `pur_info_id` = 1
Ну, это не изменит столбец pur_info_id
, но remarks
могут быть обновлены до чего-то нового. Вы должны сообщить нам, какую бизнес-логику вы намерены выполнять. В любом случае следующий запрос логически эквивалентен оригиналу, который у вас был:
UPDATE `purchase_info` SET `remarks` = '$remarks' WHERE `pur_info_id` = '$pur_id'
Спасибо всем за то, что вы делитесь своими ценными знаниями и знаниями. Я нашел решение своей проблемы. Это очень глупая проблема, но для меня все же новая. Я извлек идентификатор строки из таблицы с помощью _GET-запроса, а затем попытался использовать идентификатор в моем запросе _POST, который фактически вызвал проблему.
Мы не можем использовать значения _GET в запросе _POST коротким. Таким образом, решение состоит в том, чтобы сохранить значение _GET в переменной, сохранить это в скрытом поле ввода. И когда делается запрос _POST, мы просто берем значение из скрытого поля. Еще раз спасибо!!