如何处理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