Php mysqli并将查询作为参数传递-无结果
这是我的代码:Php mysqli并将查询作为参数传递-无结果,php,mysqli,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
$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变量时,它就可以工作了。有什么问题吗
谢谢首先,您可以测试
$result
并在错误为false时使用$mysqli->error
输出最后一个错误,这将为您提供错误的详细信息
其次,您不应该执行来自POST或GET参数的查询,这就是允许任何人使用sql注入在数据库上执行任何操作的方式。这是一个重大的安全漏洞
第三,问题可能在于后期编码(请注意引号
\'DE\'
),因此如果urldecode
和/或stripslashes
您的$sql
可能会起作用该查询中的\
可能会产生语法错误。为什么这些引语被漏掉了?是否检查了SQL错误消息?你有魔术语录吗?首先,你为什么要接受用户的任意查询?