0
我有一个PHP页面,可以将一些数据保存到我的数据库。它适用于所有具有特殊字符(。,?!)的字符串,但不适用于撇号(')。PHP:不保存撇号
这是我的PHP:
$message = trim(strip_tags($_REQUEST['message']));
$safe_variable = mysqli::escape_string($message);
$i_sql = "INSERT INTO tableName (id_user, username, message) VALUES ('".$id_user."', '".$username."', '".$safe_variable."')";
$i_res = mssql_query($i_sql);
我一直有和没有这一行尝试:
$safe_variable = mysqli::escape_string($message);
我读过,我应该使用mysql_real_escape_string
,但它不再支持我应该使用mysqli::escape_string
。
我在做什么错在我的PHP或我应该用什么来保存撇号?
注:
$message
是I'm
当我测试。
你不应该手动逃脱。使用占位符+准备好的语句 –
看起来您正在为MSSQL服务器使用MySQL报价转义函数。那些是两个**完全**不同的数据库引擎。 MySQL用\'转义单引号,而MSSQL用''转义单引号。你不能混合和匹配那样的功能。 – kainaw
您应该切换到PDO并准备好语句。这样你就不必担心斜杠。 – LSerni