Php MySQLi查询不工作?一切似乎都是正确的

Php MySQLi查询不工作?一切似乎都是正确的,php,mysql,mysqli,Php,Mysql,Mysqli,我不知道为什么下面的代码不起作用。所有的变量都已定义,但它不起作用 include('Config.php'); $QID = $_GET['NewAnswer']; $g_q_info = $con->query("SELECT * FROM questions WHERE ID='$QID'"); $q_i = $g_q_info->fetch_object(); require_once 'htmlpurifier/library/HTMLPurifier.auto.php';

我不知道为什么下面的代码不起作用。所有的变量都已定义,但它不起作用

include('Config.php');
$QID = $_GET['NewAnswer'];
$g_q_info = $con->query("SELECT * FROM questions WHERE ID='$QID'");
$q_i = $g_q_info->fetch_object();
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$Content = $_POST['editor1'];
$Content = $purifier->purify($Content);
$Title = htmlspecialchars(strip_tags($_POST['title']));
$QuestionID = $q_i->ID;
$con->query("INSERT INTO answers (QuestionID,Title,Content) VALUES ($QuestionID,$Title,$Contents)");

您忘记引用正在插入的值,您的查询只是假设成功。在代码中的漏洞之上。绝对最小修复应该是这样的:

$con->query("INSERT INTO a[..snip..]) VALUES ('$QuestionID','$Title','$Contents')");
                                              ^--         ^-^-- etc..

请注意附加的引号。但是,这并不能解决更大的注入问题。

什么是不工作?你的require\u一次工作吗?很好的SQL注入漏洞。请尝试打印SQL错误,这将有助于调试。如果您的值缺少引号,请在答案表中插入信息,但您确实应该使用参数化查询。修复注入问题实际上需要多行代码。你为什么要这样离开它并创建一个工作的注入错误?为什么要麻烦呢?我厌倦了在这个问题上喋喋不休。Noobs通常不想学习,或者根本不在乎,我已经厌倦了一遍又一遍地输入同样该死的警告。这是因为这对那些确实想学习但只需要举例的人有害。对于那些在未来有类似问题并希望得到安全、正确答案的人,这里的问题和答案依然存在。