在PHP/mySQL查询中转义连字符

Mir*_*rko 2 php

以下行引发错误:

$query = "INSERT INTO mail_senders(mailAddress) VALUES ('$_POST[sender-email]')";
Run Code Online (Sandbox Code Playgroud)

问题是连字符" - "

我可能很容易用"_"改变" - ",但我想知道是否有可能逃脱该角色以备将来参考.

提前致谢

hal*_*dan 5

要防止SQL注入,您应该转义输入.然后使用sprintf获取可读性并使用引号作为数组的索引.如果你不使用引号,PHP将sender-email视为未定义的常量,并假设你实际上是指字符串"sender-email".如果在某些时候您定义发件人电子邮件,您的代码可能会中断.

$query = sprintf("INSERT INTO mail_senders(mailAddress) VALUES ('%s')", mysql_real_escape_string($_POST["sender-email"]));
Run Code Online (Sandbox Code Playgroud)