Использование формы для обновления данных в MySQL - PullRequest
1 голос
/ 22 октября 2010

Возникают проблемы с получением моей формы для записей UPDATE в моей базе данных даже после поиска в Интернете и просмотра других ответов о переполнении стека.

Вот мой текущий НЕ функционирующий код:

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {

session_start();
$tablename = $_SESSION['MM_Username'];
$amount=$_POST['amount'];
$UpdateQuery = "UPDATE '" . $tablename . "' SET stock = '" . $amount . "' WHERE status = 1";
mysql_query($UpdateQuery);

}

Таблица, которую я хочу обновить, имеет то же имя, что и переменная SESSION MM_Username.У меня есть форма с текстовым полем с именем суммы и кнопка «Отправить», которая при нажатии должна вызвать приведенный выше код.Если вам нужно знать что-то еще, дайте мне знать.Заранее спасибо!

Ответы [ 4 ]

0 голосов
/ 22 октября 2010
if (!mysql_query($UpdateQuery)) {
    echo mysql_error()
}
0 голосов
/ 22 октября 2010

Вы используете неправильные кавычки вокруг названия таблицы.Кроме того, ваш запрос открыт для внедрения SQL.Рассмотрите возможность использования PDO и параметров связывания.

$UpdateQuery = sprintf('UPDATE `%s` SET `stock` = :amount WHERE `status` = 1',
                       $tablename);
$stmt = $pdo->prepare($UpdateQuery);
$stmt->bindParam('amount', $amount);
$stmt->execute();
0 голосов
/ 22 октября 2010

Пусть MySQL скажет вам, в чем проблема. Измените последнюю строку вашего кода следующим образом:

if (!mysql_query($UpdateQuery)) {
    echo mysql_error();
}
0 голосов
/ 22 октября 2010

Распечатайте, если у вас есть имя таблицы в переменной сеанса.

print $_SESSION['MM_Username'];

Также распечатайте $UpdateQuery и посмотрите, как формируется запрос mysql. Скопируйте этот запрос и попробуйте запустить его вручную в mysql, чтобы убедиться, что запрос в порядке.

СОВЕТУЙТЕ: Я вижу, что вы использовали $_POST. Это нормально, но я советую вам использовать $_REQUEST. Эта переменная в PHP содержит все содержимое $_POST & $_GET. Иногда забывают изменить $_POST на $_GET или наоборот и заканчивают тем, что тратят свое время, отладчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...