【发布时间】:2018-04-02 15:32:25
【问题描述】:
我遇到的问题与使用会话变量的查询有关。
在用户登录期间,我分配了一个会话变量
$myemail = $_POST['email'];
$mypassword = $_POST['password'];
$sql = "SELECT * FROM users WHERE email = '$myemail'";
$result = pg_query($db,$sql);
$row = pg_fetch_assoc($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if(count($result) == 1) {
$_SESSION['user_id'] = $row['id'];
}
亮点是$_SESSION['user_id'] = $row['id']
接下来,一旦用户登录,我想在我的数据库中找到用户的信息,所以我搜索了这样的用户
$userid = $_SESSION['user_id'];
$result = pg_query($db, "SELECT * FROM users WHERE id = '$userid'") or die("error on query");
$user_info = pg_fetch_assoc($result);
但我不断收到error on query 显示查询失败。我不知道为什么会这样。
【问题讨论】:
-
检查真正的错误可能吗?有一些方法可供您使用。
-
@FunkFortyNiner 有趣的是,如果我用say id = 2替换该行,它确实有效,所以错误必须与会话变量有关
-
下面的答案解决了吗?
-
如果用户 id 在您的数据库中是 int,则您不需要单个刻度('')。这也会导致查询失败。你可以试试这样的“.$userid”。
-
你现在有 3 个答案
标签: php sql postgresql