【问题标题】:Want to use a SESSION variable in my PHP SQL Query想在我的 PHP SQL 查询中使用 SESSION 变量
【发布时间】:2014-10-14 22:54:12
【问题描述】:

这让我发疯了好几个星期,我只想在查询中包含一个 $_SESSION 变量。

它在所有其他页面上都有效,但这个、这个页面和这个特定的页面将无法正常工作。

$query = "
    SELECT
        *
    FROM listings
    WHERE
    id = :id
    ";
    // Define our query parameter values
        $query_params = array(
            ':id' => htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8')
            );

这是我基本上完成的内容,据我所知,它应该像在其他所有页面上一样工作!

我已经尝试过连接和回显它,我已经尝试过会话,我已经尝试过 POST,但它似乎不会让它进入。

在我的页面前面

<?php echo htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8') ?>

作为一种测试,以确保价值存在,并且完美无缺。

我也尝试过专门列出“SELECTS”,但仍然没有。

这是 PHP 给我的错误:“无效的参数号:没有绑定参数”

【问题讨论】:

  • $dbh-&gt;bindParam(':id', htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8')); 如果你尝试这个会发生什么?
  • @Daan * 用它代替 $Query_Params,没有表出现,我也没有收到错误消息

标签: php sql session-cookies html-entities


【解决方案1】:

如果可行,试试这个, 假设你有 $db 作为你的数据库连接对象

$query = "
SELECT
    *
FROM listings
WHERE
id = :id
";
$stmt = $db->prepare($query);
$stmt->bindValue(':id', htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8'));

【讨论】:

  • 谢谢,这似乎成功了!有点多问我知道,但你能解释一下我做错了什么吗?谢谢
【解决方案2】:

试试这个

$paramSession = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$query_params = array(YOUR_PARAMS)
print_r($query_params); //edit his post adding the output of this.

【讨论】:

  • "Array ([:id] => 4 ) 运行查询失败:SQLSTATE[HY093]: Invalid parameter number: no parameters were bound" 那4是用户的id号,就是我希望它使用的东西......
  • 如果传的是4,你的问题可能出在查询的执行上。
  • 尝试设置 $query_params = array(':id' => 4) 并执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多