处理单引号&SQL查询的特殊字符


Handle single quotes & special characters for SQL query

如何处理SQL查询中的单引号(')和特殊字符(ûü) ?这样,如果我输入fdgbfd'ûü,我的数据库将准确地显示fdgbfd'ûü作为其条目。

mysql_real_escape_string

mysql_real_escape_string—转义字符串中的特殊字符以供SQL语句使用

$sql = "INSERT INTO table (col) VALUES ('" . mysql_real_escape_string($_POST['input']) . "')";

如果您引用的是不同的RDBMS,请使用该数据库的PHP驱动程序提供的字符串转义函数。

$string = 'fdgbfd''ûü';

$string = "fdgbfd'ûü";

您应该确保PHP文件和数据库都使用UTF-8/Unicode编码(如果您将UTF-8值分配给像上面这样的变量)。

您应该始终使用mysql_real_escape_string(), mysqli_real_escape_string(),甚至更好地使用PDO的准备语句。http://php.net/manual/en/pdo.prepared-statements.php