1

以下等效 PDO 的等效项是什么?

$i=0;
while ($i < $num_articles){
$title=mysql_result( $sql_result_article,$i,"Article_Title");
$id =mysql_result( $sql_result_article,$i,"Article_Id");
$i++;
}

我尝试使用:

$title = $select_spec_article_stmt->fetchColumn(0);
$nc=$select_spec_article_stmt->fetchColumn(1);

但我仍然面临一个问题,因为它没有显示正确的记录。当我$title在 PDO 中评论它时,它会显示正确的记录$nc。有什么想法或建议吗?

4

1 回答 1

3

mysql_result一直是处理mysql数据的最丑陋的方式。请不要将这种方法带入 PDO 的勇敢新世界。

即使使用 mysql ext,您也可以使用数组。所以你必须使用PDO。
你不需要也不mysql_result需要num_articles.

首先获取您的数据:

$data = $stmt->fetchAll();

现在在 foreach 循环中,您可以将每个变量作为数组成员寻址

<table>
<? foreach ($data as $row): ?>
  <tr>
    <td>
      <a href="news.php?<?=$row['Article_Id']?>">
        <?=htmlspecialchars($row['Article_Title'])?>
      </a>
    </td>
  </tr>
<? endforeach ?>

或者,如果您想坚持使用标量变量,请使用 extract():

<table>
<? foreach ($data as $row): extract($row); ?>
  <tr>
    <td>
      <a href="news.php?<?=$Article_Id?>">
        <?=htmlspecialchars($Article_Title)?>
      </a>
    </td>
  </tr>
<? endforeach ?>

如果您不喜欢这些花哨的浓密字段名称 - 不要在数据库中使用

于 2013-04-12T11:52:33.213 回答