位于我页面上的表单的“提交”按钮会触发下面的代码,但我不确定如何将名为“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可以吐出更详细的错误报告吗?当我运行上面的代码时,我没有收到任何错误,但是,它根本不起作用。
答案 0 :(得分:-1)
编辑:通过例外错误报告完全修订的答案
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';
}