我有我通过以下几种运行后变量:PHP mysqli_real_escape_string问题
$input_name = mysqli_real_escape_string($dbc, trim($_POST['input_name']));
我已经运行几个测试,我回声$ input_name和其他类似变量插入查询执行之前。回声表明他们确实正在逃脱,因为他们应该。
但是,当我登录到phpmyadmin查看我在DB中的条目时,发现应该转义的字符不是。我在这里遇到问题吗?在我的变量声明和我不知道的查询之间发生了什么?
是否有PHP或服务器设置可能会影响到这?
注意:我知道PDO是要走的路,我只是不在这个特定时刻。
该函数会将诸如“hel'lo”之类的内容更改为“hel \ lo”,使其可以安全地插入到数据库中,一旦它进入数据库,它将再次看起来像“hel'lo”,但会有已插入并且不会导致SQL错误。 – Dale
你逃脱了一些东西,并将它连接到你的'INSERT'查询字符串,插入的东西将*看起来不像转义。想想'insert into blah(field)VALUES(“This is \”stupid \“”)',它会插入'This is“stupid”'but * not *'这是\“stupid \”'。 –
我建议如果你正在与mysqli让你跳过的箍环战斗,并且它非常糟糕,你必须发布到SO来解决它,这是开始查看PDO的一个理想时间。 –