我目前正在将所有sql查询更新到pdo,在pdo中我将使用prepare语句来防止sql注入攻击。到目前为止一切顺利,我现在只能用pdo来计算行数了。我尝试了以下几点:
$sqlQuery = "SELECT COUNT(*) FROM News";
$STIH = $DBH->query($sqlQuery);
$rows_affected = $STIH->rowCount();
echo($rows_affected); // returning result is 1, it should be 1038 然而,当我使用像这样的旧代码时
$query = "SELECT COUNT(*) AS numrows FROM News";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
echo ($numrows); // it return result which I expected which is 1038 rows.我在这里错过了什么。谢谢
发布于 2012-04-01 01:20:45
使用$sth->fetchColumn()获取数据。
$sqlQuery = "SELECT COUNT(*) FROM News";
$STIH = $DBH->query($sqlQuery);
$rows_affected = $STIH->fetchColumn();
echo ($rows_affected);发布于 2012-04-01 01:13:14
你被弄糊涂了。要获得1038,您需要该行的结果。当前,您正在获取SELECT计数返回的行数,即1行,其中包含1个值。
发布于 2012-04-01 01:12:32
由于某些原因,您使用PDO获取的不是数据,而是行数。
只需使用PDO获取数据,就像使用普通的mysql一样
https://stackoverflow.com/questions/9957944
复制相似问题