无法获取内部连接以使用pdo连接另一个表

kmpatx3s  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(331)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

两年前关门了。
改进这个问题
我正在编写一个php脚本,希望创建一个内部连接,以便 SELECT 来自另一个表的数据 id (英寸 theList 表)和 postid (在 post_rating )table是一样的。
我相信代码应该是这样的:

INNER JOIN post_rating ON theList.id=post_rating.postid

下面是我正在使用的代码。我添加了一个 $join 变量。
因为某些原因它不起作用!当我试图删除$join并 post_rating.postidSELECT 它也不起作用-如果这有帮助的话!
我怎样才能让它工作!非常感谢:)

<?php
    $pdo = new PDO('mysql:host=localhost;dbname=myDB', 'root', 'root');
    $select = 'SELECT theList.id, theList.name, post_rating.postid';
    $from = ' FROM theList';
    $where = ' WHERE TRUE';
    $join = ' INNER JOIN post_rating ON theList.id=post_rating.postid';
    $opts = isset($_POST['filterOpts'])? $_POST['filterOpts'] : array('');
    if (in_array("pub", $opts)){
    $where .= " AND pub = 1";
    }
    if (in_array("bar", $opts)){
    $where .= " AND bar = 1";
    }
    if (in_array("restaurant", $opts)){
    $where .= " AND restaurant = 1";
    }
    if (in_array("club", $opts)){
    $where .= " AND club = 1";
    }

    $sql = $select . $from . $where . $join ;
    $statement = $pdo->prepare($sql);
    $statement->execute();
    $results = $statement->fetchAll(PDO::FETCH_ASSOC);
    $json = json_encode($results);
    echo($json);
    ?>
edqdpe6u

edqdpe6u1#

在一个有效的查询中,连接之后的位置是什么,所以请将位的串联修改为 $sql ```
$sql = $select . $from . $join . $where;

erhoui1w

erhoui1w2#

我不知道这是否能为您解决问题,可能还有其他问题,但请尝试: $sql = $select . $from . $join . $where;

相关问题