Php 购买后如何更新数据库中的用户?

Php 购买后如何更新数据库中的用户?,php,mysql,Php,Mysql,在某个用户购买premium后,我如何更新该用户 这是我让它工作的唯一方法 我想通过用户名或电子邮件更新用户,但我失败了。我希望它在购买过程中提取登录帐户的电子邮件/用户名,这样它将在购买后立即在我的数据库中更新&不会更新错误的人,更糟糕的是,不会更新所有人 以下代码将根据给定的电子邮件地址将变量“premium”设置为1。请注意,电子邮件必须是唯一的,否则具有该电子邮件地址的所有用户都将成为高级用户 <?php require_once ('vendor/autoload.php');

在某个用户购买premium后,我如何更新该用户

这是我让它工作的唯一方法


我想通过用户名或电子邮件更新用户,但我失败了。我希望它在购买过程中提取登录帐户的电子邮件/用户名,这样它将在购买后立即在我的数据库中更新&不会更新错误的人,更糟糕的是,不会更新所有人

以下代码将根据给定的电子邮件地址将变量“premium”设置为1。请注意,电子邮件必须是唯一的,否则具有该电子邮件地址的所有用户都将成为高级用户

<?php

require_once ('vendor/autoload.php');
require_once 'C:\xampp\htdocs\blog\core\init.php';

$_SESSION['user_id'] = 10;

$stripe = array(
"secret_key" => "sk_test_vDYOBYxCErhrgGCeWQJhR4mQ",
"publishable_key" => "pk_test_4mIuE3OsajKO4cnFppcDDISu"
);

\Stripe\Stripe::setApiKey($stripe['secret_key']);

$db = new PDO('mysql:host=127.0.0.1;dbname=blog', 'root', '******');

$userQuery = $db->prepare("
SELECT id, username, email, premium
FROM users
WHERE id = :user_id
");

$sql = "UPDATE users
    SET premium = 1
    WHERE id = :user_id";

$userQuery->execute(['user_id' => $_SESSION['user_id']]);

$user = $userQuery->fetchObject();

?> 

如果用户是唯一的(例如,不能有两个用户使用同一封电子邮件,或者两个用户使用同一用户名),则只应通过这些其他字段更新用户-我希望他们几乎肯定是唯一的,但值得考虑的是:)我对PHP有点陌生,我该如何定义他们$用户_email=“email”&另一个长变量作为用户\电子邮件?我也得到了这个错误,警告:PDOStatement::execute():SQLSTATE[HY093]:无效参数号:未定义参数,提前感谢!您需要从某个地方获取用户的电子邮件地址。这个变量需要输入,而不是回答中的长变量非常感谢,先生!不是想惹你生气/你用勺子喂我,但我怎么能这么做?Stripe收到电子邮件以便进行购买,我还有一个注册/登录页面。我已经尝试使用get方法和post来检索电子邮件。我尝试使用登录页面上的信息,但它只是在我需要时将我重定向到登录页面。如果你知道这方面的教程,那就太好了。我相信你知道怎么做,但我不想让你觉得我想让别人帮我做。我搜索过谷歌和YouTube,我想我搜索错了|您好,我认为最好的方法是深入研究PHP:。了解基本知识后,请熟悉Stripe API。尤其是这种方法看起来对你的问题很有希望。
$sql = "UPDATE users
SET premium = 1
WHERE email = :user_email";

$userQuery->execute(['user_email' => $theEMailAddressOfTheUserThatPurchasedPremium]);