gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:53 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com