Переменная формы в запросе PDO - PullRequest
0 голосов
/ 22 октября 2010

Кнопка «Отправить» для формы, расположенной на моей странице, вызывает приведенный ниже код, но я не уверен, как сохранить числовое значение текстового поля с именем «amount» в переменную php, которую я могу использовать в приведенном ниже запросе PDO. Я не уверен в синтаксисе. Заранее спасибо!

     if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$amount = isset($_POST['amount']) ? $_POST['amount'] : null;
if (null != $amount) {

$user = 'user';
$pass = 'pass';
$pdo = new PDO('mysql:host=localhost;dbname=dbname', $user, $pass);
session_start();
$tablename = $_SESSION['MM_Username'];
$UpdateQuery = sprintf('UPDATE `%s` SET `stock` = :amount WHERE `status` = 1', $tablename);
$stmt = $pdo->prepare($UpdateQuery);
$stmt->bindParam('amount', $amount);
$stmt->execute();
}
}

Удалена строка db_select, а также проверено, что переменная SESSION MM_Username на самом деле установлена ​​правильно. Есть ли в любом случае SQL может выкладывать более подробные сообщения об ошибках? Когда я запускаю код, как указано выше, я не получаю ошибок, однако он просто не работает.

1 Ответ

0 голосов
/ 22 октября 2010

Редактировать: полностью пересмотренный ответ с сообщением об ошибке через исключение

session_start();
if (isset($_POST['MM_update']) && $_POST['MM_update'] == 'form1') {
    $amount = isset($_POST['amount']) ? $_POST['amount'] : null;
    if (null === $amount) {
        throw new Exception('Amount not set');
    }
    $user = 'user';
    $pass = 'pass';
    if (empty($_SESSION['MM_Username'])) {
        throw new Exception('Username table not set in session');
    }
    $pdo = new PDO('mysql:host=localhost;dbname=dbname', $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $query = sprintf('UPDATE `%s` SET `stock` = :amount WHERE `status` = 1', $_SESSION['MM_Username']);
    $stmt = $pdo->prepare($query);
    $stmt->bindParam('amount', $amount);
    $stmt->execute();
} else {
    echo 'Nothing to do';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...