我已经多次使用了mysqli_stmt_bind_param函数。然而,如果我分别处理要防止SQL注入的变量,则会遇到错误。
这里是一些代码示例:
function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol )
{
$statement = $mysqli->prepare("INSERT INTO " .$new_table . " VALUES (?,?,?,?,?,?,?);");
mysqli_stmt_bind_param( $statment, 'sssisss', $Partner, $Merchant, $ips, $score, $category, $overall, $protocol );
$statement->execute();
}
是否可能通过另一个问号语句替换.$new_table.
的连接方式,创建另一个绑定参数语句或添加到现有语句中以避免SQL注入?
像这样或类似于这种形式:
function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol )
{
$statement = $mysqli->prepare("INSERT INTO (?) VALUES (?,?,?,?,?,?,?);");
mysqli_stmt_bind_param( $statment, 'ssssisss', $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol );
$statement->execute();
}
$mysqli->real_escape_string
函数对字符串进行清理。 - Lusitanian