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