Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli并将查询作为参数传递-无结果_Php_Mysqli - Fatal编程技术网

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错误消息?你有魔术语录吗?首先,你为什么要接受用户的任意查询?