用简单的术语解释PHP/MySQL

用简单的术语解释PHP/MySQL,php,mysql,Php,Mysql,我有下面的代码,希望有人能澄清突出显示的/注释的/明显的行在做什么 $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 O

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

$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
    ...
}

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

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

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


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

这可不是简单的术语!假设我需要向我的母亲或孩子解释。。。。或者至少是一位了解数据库但不了解数据库的同事PHP@JeremyHarris这对OP毫无帮助。“这个问题涉及到它在引擎盖下是如何工作的”OP并不是在寻找你是对的,它基本上是说“在返回的数据行中,将每列作为$name,将其值作为$value”。请阅读。这总是有帮助的。@pee2pee我写了大量的答案,但问题已经结束了(公平地说,我开始了那次接近的投票)。也许会有帮助:只是想确保它包含列名,而不仅仅是记录。这就是添加
=>
所做的。只要我知道这根本不是
=>
所做的,
$name
将在结果集中包含行的数字索引,
$value
将包含行本身,我就会接受这个答案。行是否包含列名完全取决于调用哪个
fetch
函数。在本例中,调用
fetch\u assoc
将列名作为
$row
数组中的键。