php - 在 PHP 中将 MySQL 查询结果作为数组获取的最佳方法是什么?

标签 php mysql arrays

我是 PHP 新手。我有一个 select 语句,它为特定记录返回 100 个值。我想将这 100 个值存储在一个数组中。这是将从 select 语句获得的值存储到数组中的正确命令吗?

$result = mysql_query("select * from processed1 where record = ('$id') ");
$data = array();

while($row = mysql_fetch_array($result))
{           
   $data[] = $row;        //IS THIS CORRECT?
}

有没有一种方法可以避免为我的表输入 100 个属性?示例:$row[1] ... $row[100]

最佳答案


如果你打算在 2011 年学习 PHP,那就让我们做对吧。

首先,不推荐使用 mysql_query 或 mysql_anything 代码。不要再使用它了。

别担心 - 我的建议适用于 mysql 数据库,但它也适用于任何数据库:

  • PDO 是 PHP 社区不断添加的功能,所以我会使用它。
  • PDO 也更强大,以后切换数据库也更容易。
  • MYSQLi(i 代表改进)取代了已弃用的基于 mysql_ 的查询,但我肯定会直接使用 PDO。
  • 你也可以很容易地创建一个数组 稍后用一行更改的对象!

其次,Phil 提到了 fetchAll()。这是最终目标。其他方法只是一次移动一行。这使用推土机而不是铲子。注意:这不是选择大量数据的最佳方式,因为它会耗尽内存。否则,没关系。

要做到这一点,请使用准备好的程序来保护您的代码免受 SQL 注入(inject)攻击。

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

/* Fetch all of the rows into an array */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);

?>

关于php - 在 PHP 中将 MySQL 查询结果作为数组获取的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974773/

相关文章:

php - 如何通过 PHP 将 .xls 转换为 .pdf?

php - 服务器/本地主机之间的不同环境正在改变日期格式 - php pdo mysql/oci

php - php 中的 mysql_insert_id() 不返回最后插入的 ID?

php - 获取where子句中的所有值

Javascript 使用 map() 和 Iterator 将对象数组分成多个数组

php - Xdebug 在 xdebug_break() 处停止,但不在 NetBeans 中的断点处停止

php - 提取下载的 zip 文件的内容而不将其存储到 PHP 中的光盘

更大查询中的 MySQL COUNT 语法

Javascript 将数字 0 视为空白字符串?

javascript - 使用 Splice Javascript 在数组中增量添加元素