我是 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/