【问题标题】:Explain PHP/MySQL in Simple Terms [duplicate]用简单的术语解释 PHP/MySQL [重复]
【发布时间】:2017-05-12 03:11:30
【问题描述】:

我有下面的代码,希望有人能澄清突出显示/注释/明显的行在做什么

$result = mysqli_query($db, "SELECT * FROM `tblName` WHERE `id`='" . mysqli_real_escape_string($db, $_GET['id']) . "' LIMIT 0, 1");
$row = mysqli_fetch_assoc($result);
foreach($row as $name => $value) {  // THIS ONE I NEED HELP WITH
    ...
}

它基本上是说“对于每一列......” - 这就是我卡住的地方

【问题讨论】:

  • 很难用简单的术语!假设我需要向我的母亲或孩子解释......或者至少是一个懂数据库但不懂 PHP 的同事
  • @JeremyHarris 几乎不会帮助 OP。 “这个问题涉及它在引擎盖下的工作方式”OP 不是在寻找那个
  • 你是对的,它基本上是说“在返回的数据行中,将每一列作为$name,它的值作为$value”。
  • 阅读documentation。它总是有帮助的。
  • @pee2pee 我写了很多答案,但问题已经结束(公平地说,我开始了近距离投票)。也许会有所帮助:pastebin.com/f5hXdgD4

标签: php mysql


【解决方案1】:

这是一个foreach 循环。所以可以翻译成...

对于$row 变量中的每个对象,将该对象分配给新变量$name,其对应值为$value

这将循环 N 次,其中 N 是返回的行数。每次循环迭代时,$name$value 变量都会重新初始化为新行的内容。

【讨论】:

  • 只是想确保它包含列名而不仅仅是记录
  • 是的。这就是添加 => 所做的事情。
  • 我会尽快接受这个答案
  • 这根本不是“=> 做了什么”,$name 将在结果集中包含行的 numeric 索引,$value 将包含该行本身。该行是否包含列名完全取决于调用哪个fetch 函数。在这种情况下,调用fetch_assoc 将列名作为$row 数组中的键。
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
相关资源
最近更新 更多