【问题标题】:Nothing will echo inside my foreach loop在我的 foreach 循环中什么都不会回显
【发布时间】:2023-04-04 09:05:02
【问题描述】:

我遇到了这个问题,以前从未遇到过。

由于某种原因,当我去运行我的 php 脚本时,甚至在这个 foreach 循环之后,任何东西都没有回显到页面,这很奇怪。

在循环之外,我有一个脚本可以通过电子邮件向我发送一些信息,但即使这样也不会发送任何内容。

知道为什么这个 foreach 可能会失败,所有 $fetch 数据都是正确的,因为我可以在之前将其全部回显。

echo "<strong> - FLAGGED FOR DELETION </strong>";       
foreach($db->query('SELECT * FROM client_links WHERE clid = '.$fetch['clid'].' AND link = "'.$fetch['url'].'" and cwid = '.$fetch['cwid'].' ') as $row){        
                echo "FOREACH IS WORKING";

提前干杯!

【问题讨论】:

  • 请把$db-&gt;query('SELECT * FROM client_links WHERE clid = '.$fetch['clid'].' AND link = "'.$fetch['url'].'" and cwid = '.$fetch['cwid'].' ')放在循环之外的变量中。太可怕了!
  • foreach 没有失败,$db-&gt;query() 可能没有返回任何可以循环的内容。谁知道呢,因为我们无法读心,也不知道您使用的是什么 DB API。此外,由于您将数据直接连接到查询中,因此您可能很容易受到 SQL 注入攻击。使用准备好的/参数化查询来完全避免这个问题!
  • 可能查询失败并返回 FALSE。
  • @Brad 这是一个只有我可以访问的内部系统。
  • @Duenna 如果您完全不知道$db-&gt;query() 会返回什么,那么您希望我们如何帮助您?而且,SQL 注入问题不仅仅是安全问题。当有人在某处的某个字段中加上引号时,玩得开心。

标签: php loops pdo foreach


【解决方案1】:

已修复,问题是我在脚本顶部的一个包含覆盖了 $db

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2022-11-14
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多