Come dice il titolo, perché MySQLi usa i punti interrogativi invece della formattazione sprintf()
? Ad esempio, perché è
$stmt = $mysqli->prepare("SELECT * FROM table WHERE column1 = ?");
$stmt->bind_param('s', $var);
invece di
$stmt = $mysqli->prepare("SELECT * FROM table WHERE column1 = %s", $var);
Ci sono state alcune complicazioni con l'utilizzo della formattazione sprintf o c'erano rischi associati alla sicurezza? Inoltre, se fosse necessario avere un punto interrogativo nell'istruzione SQL, c'è un modo per evitarlo (in sprintf()
, si farebbe solo %%
invece di %
)?