首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用php会话访问数据库中的值?

如何使用php会话访问数据库中的值?
EN

Stack Overflow用户
提问于 2018-07-11 01:42:02
回答 1查看 46关注 0票数 -4

我正在尝试访问类accountPass

代码语言:javascript
复制
session_start();
if(!isset($_SESSION['login']))
{
header("location:login.php");
}

include_once '../controller/controller.php';

代码语言:javascript
复制
include_once '../controller/Validation.php';

$account = new account();
$validation = new Validation();

$id = $_SESSION['user.id'];
$query = "SELECT * FROM accounts WHERE user.id = '$id'";
$res = $account->accountPass($query);

但我似乎不明白为什么这里的结果是假的。

代码语言:javascript
复制
public function accountPass($query)
    {
        $result = $this->connection->query($query);
        if ($result == false) 
        {
            echo 'Error: Cannot execute accountPass';
            return false;       
        } 
        if ($result->num_rows > 0) 
        {
            $row = $result->fetch_assoc();
        }
        return $row;

    }
EN

回答 1

Stack Overflow用户

发布于 2018-07-11 03:58:42

您需要通过使用已知值对查询进行测试来验证查询是否返回一行。根据MySQL中的快速测试,名为user.id的列在查询时不带反记号是无效的。(假设您使用的是MySQL或类似的语言)

代码语言:javascript
复制
SELECT * FROM accounts WHERE user.id = '1'; -- fails
SELECT * FROM accounts WHERE `user.id` = '1'; -- works

因此,不建议在列名中使用句点。如果要使用别名联接表,则别名指示符后面紧跟一个句点,然后是列名。举个例子:

代码语言:javascript
复制
SELECT a.user, r.role FROM accounts AS a LEFT JOIN roles as r ... WHERE a.user = 1001;

(以上查询不完整)

accounts表中获取user列,从roles表中获取role列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51271299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档