首页 > 解决方案 > 查询以使用另一个选择来选择某事

问题描述

我想进行查询,但遇到语法问题,我还没有找到解决方案。

 $reponse = $bdd->query('
 SELECT * 
   FROM web_pages
  WHERE company_token = 
    ( SELECT token 
        FROM pro_users 
       WHERE id ='{$_SESSION["id"]}'
    )
 ');

那是我的代码,它正在工作,但是当我添加 WHERE id ='{$_SESSION["id"]}')' 时,会出现语法问题。我应该修改什么?

标签: phpmysql

解决方案


我认为你想做这样的事情

 $reponse = $bdd->query("SELECT * FROM web_pages WHERE company_token = (SELECT token FROM pro_users WHERE id ='".$_SESSION["id"]."')");

但这是危险且易受攻击的,请参阅此SQL INJECTION 我建议您保护您的查询并使用这样的准备语句

$reponse = $bdd->prepare("SELECT * FROM web_pages WHERE company_token = (SELECT token FROM pro_users WHERE id = ?)");
$reponse->execute(array($_SESSION["id"]));

推荐阅读