我正在使用此PDO查询从数据库中进行选择:
$stmt = $pdo_conn->prepare("select * from tickets where ticketnumber = :seq ");
$stmt->execute(array(':seq' => $_GET["seq"]));
$ticket = $stmt->fetch();
但是我无法获得与mysql_num_rows
我尝试过:
$stmt = $pdo_conn->prepare("select COUNT(*), * from tickets where ticketnumber = :seq ");
$stmt->execute(array(':seq' => $_GET["seq"]));
$ticket = $stmt->fetch();
$num_rows = $stmt->fetchColumn();
echo $num_rows;
答案 0 :(得分:3)
你还在看手册吗?
http://us1.php.net/mysql_num_rows
警告 自PHP 5.5.0起,此扩展已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括: mysqli_stmt_num_rows() PDOStatement对象:: rowCount时()
http://us1.php.net/manual/en/pdostatement.rowcount.php
请参阅:示例#2计算SELECT语句返回的行
使用您的代码:
select COUNT(*) from tickets where ticketnumber = :seq
您无法同时选择计数和*。该示例显示您选择计数,然后尝试选择您的行。
答案 1 :(得分:1)
首先,您需要执行2个单独的查询来获取行数,因为您无法在同一查询中执行COUNT()
和*
。
因此,您将使用以下方式获取行计数:
$stmt = $pdo_conn->prepare("select * from tickets where ticketnumber = :seq ");
$stmt->execute(array(':seq' => $_GET["seq"]));
$ticket = $stmt->fetch();
echo 'Rows: '.$stmt -> rowCount();
更多信息可在手册中找到:PDOStatement::rowCount