Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL_real_escape_string fügt keine Schrägstriche hinzu?

m_r_e_s() GIBT den Escape-Wert ZURÜCK, das Original wird nicht geändert.

$int = mysql_real_escape_string($_POST['int']);

$query = "UPDATE ... interests = '$int' ...";

Beachten Sie, dass ich den int in Anführungszeichen gesetzt habe im POST-Wert. Ohne die Anführungszeichen sieht PHP es als konstanten Wert (z. B. define()). Wenn es keine Konstante dieses Namens findet, geht es höflich davon aus, dass es sich um einen String handeln soll, und passt es entsprechend an, gibt aber eine Warnung aus. Wenn Sie das getan hätten

define('int', 'some totally wonky value');

zuvor würden Sie auf den falschen POST-Wert zugreifen, weil PHP ihn als $_POST[some totally wonky value] sehen würde stattdessen.