PHP - PDO,如何返回select语句中的行数

I have a simple statement but cant seem to get the number of rows from the select statement, really bugging me when its really simple. I keep getting empty string.

Here is the code

include "connect.php";

$userID = $_POST['userID'];
$threadID = $_POST['threadID'];

$sql1 = "select * from AT_AddThread where AT_ID = :threadID";
$stmt = $conn->prepare($sql1);
$stmt->execute(array(':threadID' => $threadID));
$result = $stmt->fetchColumn(7);
//echo $result;

$sql2 = "select * from TJ_ThreadJoined where TJ_T_ID = :threadID"
$q2 = $conn->prepare($sql2);
$q2->execute(array(':threadID' => $threadID));
$q2->execute();
$rows = $q2->fetchColumn();
echo $rows; //THIS IS where i want to return the number of rows from the select statement

In addition to fetchColumn you can try the following ways:

  1. count the rows

    $rows = $stmt->fetchAll(); echo "count = " . count($rows);

  2. Use rowCount()

    echo "count = " . $stmt->rowCount();

  3. Add it to the query :

    SELECT COUNT(*) as rowCount ...

    echo $row['rowCount'];

Try this:

echo $q2->rowCount();

or

$row = $q2->fetch(PDO::FETCH_NUM);
echo $row[0];

.

->rowCount(); doc

You can always get number of rows returned in last query. Just add SQL_CALC_FOUND_ROWS after SELECT statement

$sql2 = "select SQL_CALC_FOUND_ROWS * from TJ_ThreadJoined where TJ_T_ID = :threadID"

Then execute query SELECT FOUND_ROWS(), fetch row and you will have number of rows from last query.