mysqli并将查询作为参数传递 - 没有结果

时间:2014-11-14 10:21:21

标签: php mysqli

这是我的代码:

$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变量时,它可以工作。可能是什么问题?

由于

1 个答案:

答案 0 :(得分:0)

好吧,首先你可以测试$result,并在错误时输出$mysqli->error的最后一个错误,这会给你详细说明错误。

其次,您不应该执行来自POST或GET参数的查询,这就是您允许任何人使用sql注入对数据库执行任何操作的方式。这是一个很大的安全漏洞。

第三,问题可能在于POST编码(请注意引号\'DE\'),因此如果urldecode和/或stripslashes您的$sql它可能会起作用