【问题标题】:Creating a PHP session variable based on one value pulled from MySQL根据从 MySQL 中提取的一个值创建 PHP 会话变量
【发布时间】:2021-07-27 04:59:00
【问题描述】:

这是一个学校项目,我正在创建一个实施奖励系统的电子商务网站。我正在使用 PHPMyAdmin 连接到 MySQL 服务器。

基本上,我想根据客户当前登录拥有的奖励积分创建一个会话变量。换句话说,会话变量的值将等于 MySQL 数据库中特定客户记录中显示的奖励积分数。如果值为 NULL,我会将变量 = 设置为零。

任何见解将不胜感激。

谢谢!

【问题讨论】:

  • 随着时间的推移,这将不准确,如果最终用户在查询后获得积分,则不会更新会话。为什么不将其作为用户模型的一部分进行查询?这似乎有点矫枉过正。

标签: php html mysql phpmyadmin e-commerce


【解决方案1】:

在此处使用会话并不能保证数据完整性:如果在查询后增加或减少积分,您的会话将不会更新。

相反,INNER JOIN 将您的表放在一起并将其附加到您的用户模型 (MVC)。

示例(假设您的表格):

$stmt = (new PDO('...', ['...']))->prepare('SELECT u.id, u.column, r.points FROM users u INNER JOIN rewards r ON r.id = u.ud WHERE u.id = ?');
$stmt->execute([(int) $someUserId]);
$user = $stmt->fetch(PDO::FETCH_OBJ);

现在你可以像平常一样使用你的用户模型了:

$user->column; // Normal
$user->points  // Joint Table

See an example of how to construct it on 3v4l

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2015-04-28
    相关资源
    最近更新 更多