Explain PHP/MySQL in Simple Terms
我有下面的代码,希望有人能澄清突出显示/评论/明显的行在做什么,请
它基本上是说"每列……"-这就是我被卡住的地方
- 很难用简单的术语!假设我需要向我的母亲或孩子解释这件事……或者至少是一个了解数据库而不是PHP的同事
- @杰里米哈瑞斯,这几乎不会帮助行动。"这个问题涉及到它如何在引擎盖下工作"行动不是在寻找这个。
- 警告:使用mysqli时,应使用参数化查询和bind_param向查询中添加用户数据。不要使用手动转义和字符串内插或连接来完成这项工作,因为如果忘记正确转义某些内容,将导致严重的SQL注入错误。
- 您是对的,它基本上说"在返回的数据行中,将每一列作为$name,它的值作为$value"。
- @泰德曼-事实上,这只是一个非常简单的版本
- @Peehaa我希望OP对一些更深入的东西感到困惑,而不是很容易通过谷歌搜索。例如:safaribooksonline.com/library/view/php-in-a/0596100671/…
- 阅读文档。它总是有帮助的。
- @pee2pee参数化查询通常比这种方法更简单,因为查询本身并没有被分解成比特,也没有被各种各样的转义垃圾堆积在一起。如果你能保持代码简单,你就可以理解它。
- @杰里米哈瑞斯,你一定是新来的:P
- 我没有看到这个问题的价值,因为这是一个简单的代码,它使用的函数在正式的PHP文档中有明确的解释。
- @不过,Jeremyharris如何处理与数据库查询相关的问题。在正常的for循环中,是的,但是在MySQL情况下,我希望它是清晰的
- 这是欢乐的季节……除非你是这样的:—)
- @皮特,我有一个大量的答案,但这个问题已经结束了(公平地说,我开始了那次近距离投票)。也许会有帮助:pastebin.com/f5hxdgd4
- 幸运的是,准备好的语句的美妙之处在于,您永远不需要关心这样古老的代码。
- 我知道,我知道…
- @你是不是在我们一致认为不是骗人的情况下把它关起来的?它应该是关闭的,但这毫无意义。
这是一个foreach循环。所以可以翻译成…
对于$row变量中的每个对象,将该对象赋给新变量$name,其对应值为$value。
这将循环n次,其中n是返回的行数。每次循环迭代时,$name和$value变量都会重新初始化为新行的内容。
- 只是想确定它包括了列名而不是记录
- 对。这就是添加=>所做的。
- 我会尽快接受这个作为答案的
- 这根本不是"=>所做的",$name将在结果集中包含行的数字索引,$value将包含行本身。行是否包含列名完全取决于调用哪个fetch函数。在这种情况下,调用fetch_assoc是在$row数组中获得列名称作为键的方法。