SQL 查询未成功获取行



我曾尝试使用SQL查询从数据库中检索数据,但它没有成功地获取行

它告诉我PHP中的行是空的,但当我使用查询直接查询数据库时,它就起作用了。我不知道我在做什么。

// read all message records
function readAllByTopicId($from_record_num, $records_per_page, $topic_id){
// query to read all message records, with limit clause for pagination
**$query = "SELECT * FROM " . $this->table_name . " ps WHERE ps.published=1 and ps.id IN (SELECT pt.post_id FROM post_topic pt WHERE pt.topic_id=? GROUP BY pt.post_id HAVING COUNT(1)=1) ORDER BY id DESC LIMIT ?, ?";**
// prepare query statement
$stmt = $this->conn->prepare( $query );
// bind limit clause variables
$stmt->bindParam(1, $from_record_num, PDO::PARAM_INT);
$stmt->bindParam(2, $records_per_page, PDO::PARAM_INT);
$stmt->bindParam(3, $topic_id, PDO::PARAM_INT);
// execute query
$stmt->execute();
return $stmt;
}

尝试调试该语句以确保您在查询中拥有所需的数据。。。

$stmt->debugDumpParams();

否则可能加入?

$query = "
SELECT * 
FROM 
`" . $this->table_name . "` AS ps INNER JOIN
( SELECT pt.post_id FROM post_topic pt WHERE pt.topic_id=?       
GROUP BY pt.post_id HAVING COUNT(1)=1) AS pt
ON ps.id = pt.post_id
WHERE ps.published=1 and ps.id IN 
ORDER BY id DESC 
LIMIT ?, ?";

最新更新