这是我的代码:
$sql = $_POST['sql'];
....
$result = $mysqli->query($sql);
这不会返回任何结果。所以我回应了$ sql变量,这就是结果:
SELECT o.entity_id, o.increment_id FROM sales_flat_order o JOIN sales_flat_order_payment p ON o.entity_id = p.parent_id JOIN sales_flat_order_address a ON o.entity_id = a.parent_id WHERE a.country_id = \'DE\' ORDER BY o.entity_id DESC LIMIT 10;
现在,当我直接将它分配给$ sql变量时,它可以工作。可能是什么问题?
由于
答案 0 :(得分:0)
好吧,首先你可以测试$result
,并在错误时输出$mysqli->error
的最后一个错误,这会给你详细说明错误。
其次,您不应该执行来自POST或GET参数的查询,这就是您允许任何人使用sql注入对数据库执行任何操作的方式。这是一个很大的安全漏洞。
第三,问题可能在于POST编码(请注意引号\'DE\'
),因此如果urldecode
和/或stripslashes
您的$sql
它可能会起作用