我的应用程序目前将if (get_magic_quotes_gpc()) { stripslashes }
后跟mysqli_real_escape_string()
应用于所有字符串,使用过滤器确认电子邮件和URL格式,并在查询中使用它们之前确认所有整数和图像数据类型。
我已经掌握了使用参数应用预准备语句的基础知识,例如,
$query = "INSERT INTO my_table (col1, col2, modified) VALUES (?,?, CURRENT_TIMESTAMP)";
$stmt = mysqli_prepare($connect, $query);
mysqli_stmt_bind_param($stmt, "ss", $string1, $string2);
if (!mysqli_stmt_execute($stmt)) {display error}
else {do something else}
当字符串有撇号(单引号)时,如O'Grady
中所示,当插入时,它会以O\'Grady
的反斜杠进行转义。每次用户更新帐户时,转义斜线都会呈指数级增长。 INSERT和UPDATE有没有办法避免这种情况;如果不是如何在SELECT上消除它,那么它在检索(和乘法)时不会显示?