【发布时间】:2016-09-02 15:00:49
【问题描述】:
我有一个 HTML 表单,一个 PHP 脚本从中提取值,如下所示:
$dbc = mysqli_connect("all required info here...") or die("Error occurred");
$sent = "Any sentence here...which may contain apostrophe or double quotes or both";
$query = "SELECT * FROM myrecord WHERE sentence = '$sent'";
$result = mysqli_query($dbc, $query);
$data = mysqli_fetch_array($result);
mysqli_close($dbc);
问题是,变量$sent 可以包含任何带有撇号或双引号或两者的组合 的字符串。这在执行mysqli_query() 时会出错。
所以即使我在$sent 的初始化中转义双引号,它仍然会为mysqli_query() 的执行带来问题。如果我同时转义 ' 和 " 则 $sent 的值不会保持它实际需要的值(尽管我不确定同时转义 ' 和 " 是否会起作用)。
是否有任何内置函数可以自动转义字符串的所有特殊字符?或者有什么办法可以解决这个问题?
[附注我已经搜索了一些关于stackoverflow的以前的问题,但未能找到解决方案。]
【问题讨论】: