php - 正确的查询格式

标签 php html href

我正在制作一个测试程序,我需要在其中使用以下代码:

"href=\"testmng.php?manageqn=" . htmlspecialchars_decode($r['testname'], ENT_QUOTES) . "?subjectname=". htmlspecialchars_decode($r['subname'], ENT_QUOTES)

我的问题是当 manageqnsubjectname 有正确的值时什么是正确的格式:

else if ((isset($_REQUEST['manageqn'])) && (isset($_REQUEST['subjectname']))) {

$testname = $_REQUEST['manageqn'];
$subname = $_REQUEST['subjectname'];
$result = executeQuery("select testid from test where testname='" . htmlspecialchars($testname, ENT_QUOTES) . "';");

if ($r = mysql_fetch_array($result)) {
    $_SESSION['testname'] = $testname;
    $_SESSION['subjectname'] = $subname;
    $_SESSION['testqn'] = $r['testid'];

    header('Location: prepqn.php');
}
}

最佳答案

假设您正在使用 mysqli 连接到数据库,您需要使用 myqli_real_escape_string() 对字符串进行转义PHP 函数,否则您可能会向您的应用程序添加 sql 注入(inject):

executeQuery("select testid from test where testname='" . myqli_real_escape_string($testname) . "';");

不过,我建议通过使用 mysqli 提供的准备好的语句功能来切换到参数化查询方法。然后,您可以像这样使用 executeQuery():

executeQuery("select testid from test where testname=?", $testname)

无需转义字符串即可进行安全查询。

如果您正在使用已弃用的 mysql 驱动程序,那么您应该使用 mysql_real_escape_string()

关于php - 正确的查询格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29681119/

相关文章:

javascript - JS : Issue getting values from drop-down menu to replace parts of HREF strings

java - Spring MVC 一个 href 重定向到另一个 JSP

html - 如何在输入标签内设置按钮样式

php - ORDER BY 不与 GROUP BY 一起使用

php - Magento PHP-FPM 无法设置 Mage_Run_Code

php - Mysql 查询不起作用?

html - CSS - 悬停时更改多项内容

css - 如何提高这个 CSS 动画的性能?

php - 图库系统 - 哪种方法更好?

javascript - 将焦点和光标设置到文本输入字段/字符串 w 的末尾。查询