[英]Converting mysql_* to mysqli_* issue
我正在使用MySQLConverterTool
转换我的Web应用程序,
我面临的第一个问题是代码变得越来越大,我什至不明白那意味着什么? 以前这是非常小的代码,现在我看到这太大了。
//old code
$ask_id = mysql_real_escape_string($_POST['ask_id']);
//after convert
$ask_id = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $_POST['ask_id']) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
它的工作正常,但我想知道它是mysqli_*
正确方法还是需要在线解决一些问题或错误?
我也想知道如何使这部分安全
if (isset($_POST['asking-money'])) {
$dailyBonus = 10000;
$update = mysqli_query($GLOBALS["___mysqli_ston"], "UPDATE users SET ask_time='$newtime', bonus='dailyBonus' WHERE id='$userid'");
// some more calculation
}
代码的第一位(粗略地)看起来像添加了一条巨大的三元语句,以检查所使用的变量是否至少已设置,但除此之外,您应该只能使用:
mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $_POST['ask_id'])
为了确保SQL查询的安全性,请尝试使用预处理语句,而不要直接使用变量查询
对于mysqli_ *部分,以前用mysql_ *完成的大多数事情都与新前缀几乎相同,因此,很可能没有问题,并且如何确保它的安全,只需评估并准备所有内容即可。在查询中使用用户之前传递给用户的参数,换句话说,在任何情况下都从不直接在查询中使用用户输入。 除此之外,代码对我来说似乎还不错。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.