我正在尝试使用 PDO 更新数据库中的表。目前我正在提交表单,除了白屏什么都没有,我已经启用了所有错误报告选项,但仍然只有白屏。我一直盯着代码看一辈子,但仍然可以'解决问题。向正确的方向插入将不胜感激......谢谢
require('includes/config.php');
//if not logged in redirect to login page
if(!$user->is_logged_in()){ header('Location: login.php'); }
$signedin = $_SESSION['username'];
$sql = "UPDATE member SET firstname = :firstname,
lastname = :lastname,
username = :username,
email = :email,
age = :age,
country = :country
where username = $signedin";
$stmt = $db->prepare($sql);
$stmt->bindParam(':firstname', $_POST['firstname'], PDO::PARAM_STR);
$stmt->bindParam(':lastname', $_POST['$lastname'], PDO::PARAM_STR);
$stmt->bindParam(':username', $_POST['username'], PDO::PARAM_STR);
// use PARAM_STR although a number
$stmt->bindParam(':email', $_POST['email'], PDO::PARAM_STR);
$stmt->bindParam(':age', $_POST['age'], PDO::PARAM_STR);
$stmt->bindParam(':country', $_POST['country'], PDO::PARAM_INT);
$stmt= $db->execute($sql);
?>
最佳答案
execute()
函数不需要 $sql
(您在 prepare()
中提供)
$stmt->execute();
接下来,您应该将所有数据传递到准备好的语句中,否则您就达不到目的(这是最大的安全性)。所以让我们删除
$sql = "UPDATE member SET firstname = :firstname,
lastname = :lastname,
username = :username,
email = :email,
age = :age,
country = :country
where username = :username";
//snip
$stmt->bindParam(':username', $_SESSION['username'], PDO::PARAM_STR);
关于php - 无法更新表 PDO 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658561/