【问题标题】:PHP: How to I convert a 3D array into an mysql result object?PHP:如何将 3D 数组转换为 mysql 结果对象?
【发布时间】:2015-11-25 15:50:39
【问题描述】:

答案可能是写两个函数!但是,也许我没有的一点知识将有助于避免大量的重构或数据库使用。

我有一个非常常见的语法函数:

while($row = $db->sql_fetchrow($result)) {
// do some stuff
}

大多数时候,$row 将是一个 mysql 对象,其中包含零、一或多行。很简单。

但是,如果我也可以使用 3 维 PHP 数组(以前构建为具有三个键和值对的一堆“行”)而不以不同方式处理它们,那将非常方便。

我的问题是“我需要对 3D 数组做什么才能将其“转换”为在上述示例中无需更改即可工作的 mysql 对象”?

【问题讨论】:

  • 我不明白您为什么要将数组转换为 mysql 对象。你能解释清楚吗?
  • 对不起,如果我解释得不够充分。与 mysql 对象(几行)一起使用的函数需要传递一个 mysql 结果对象。在某些情况下,我想在我有一个 3D 数组的地方重用这个函数(基本上是几个变量像行一样重复的想法),我想知道是否有一种快速的方法可以将该数组转换为相同的格式作为 mysql 结果对象。如果没有,那么我可能需要更改函数以使用数组并将 mysql 结果转换为数组,然后再点击函数 - 只是试图避免这种情况。
  • 或者您可以将结果存储在两个不同的变量中,一个是mysql result object 格式,另一个是转换/转换为array。你能做到吗?如果不能,我建议您发布一些代码的 sn-ps,这可能有助于我们获得更多信息并解决您的问题。
  • 是的,这是另一种接近它的方式。我基本上已经构建来测试它是否获取数组或mysql对象,如果后者则将其转换为数组,因此下一段代码适用于数组之前的任何选项。

标签: php mysql arrays object


【解决方案1】:

没有一种方法可以在不写入 tmp 表并将其读回的情况下转换为 mysql 对象。以下将处理出现的 sql 语句或数组,这样就不需要按照问题进行转换.

$all_rows = $notify->notification_sql(); // This either returns an SQL statement ready to run OR a set of rows in an array

if (!is_array($all_rows)) { // If it's not an array, run the SQL query and put it into an array of rows
    $result = $db->sql_query($all_rows);
    $all_rows = array();
    while($row = mysql_fetch_array($result)) {
        $all_rows[] = $row;
    }
}

foreach...

【讨论】:

    猜你喜欢
    • 2011-04-13
    • 2021-11-17
    • 2016-12-23
    • 2013-10-12
    • 2015-12-13
    • 2015-12-10
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    相关资源
    最近更新 更多